Oracle работает над управлением эксклюзивных блокчейнов

Понимание оракулов в блокчейне

Перевод статьи Thomas Bertani из блога компании Oraclize. Этот пост дискуссия о том, чем на самом деле являются оракулы, так же мы расскажем о некоторых распространенных заблуждениях по этому вопросу. Оракул — это третья сторона, вы общаетесь с оракулом когда вам нужны данные, которые вы не хотите (или не можете) извлекать самостоятельно.

Причин для этого может быть много. С одной стороны, вы можете не доверять отдельному объекту при подписании multi-signature транзакции Bitcoin. Например, вы хотите чтобы некоторые средства были перемещены только при определенных условиях.

Вместо того, чтобы делать это самостоятельно (что не дает никаких гарантий внешним сторонам) или делегировать это третьей стороне (которой вы не хотите доверять, поскольку она может вести себя некорректно), вы разделяете процесс подтверждения транзакции различным сторонам (оракулам) через multi-signature транзакцию.

Путь с использованием N-of-M multi-signature транзакций заключается в том, что каждый оракул имеет только один закрытый ключ, и может поставить только одну подпись в тот момент когда он сочтет это нужным, но сама транзакция будет действительна одна и N-of-M оракулы будут иметь консенсус относительно того, какая транзакция должна пройти.

Это намного правильней, чем доверять одной из внешних сторон, поскольку выбранные оракулы могут конкурировать и вы получаете низкую вероятность мошенничества.
Идея иметь распределенную oracles network существует уже несколько лет, однако найти консенсус по протоколу связи между оракулами (Orisi пыталась) сложно.

Поиск сторон готовых присоединиться к oracles network, еще сложнее, так как необходим хороший процесс стимулирования, а так же простой и понятный дизайн с возможностью легко взаимодействовать и в этом пока консенсуса нет.

Помимо всего этого существенным ограничением могут быть источники, которые вы хотите использовать для получения данных, так как некоторые из них могут быть недоступны без разрешения внешних сторон (подробнее об этом мы поговорим немного позже).

Если мы говорим о смарт-контрактах (Ethereum), то здесь совершенно по другому, логика подтверждения транзакций обеспечивается сетью через ваш собственный код смарт-контракта.

Это означает, что оракул не ставит подпись после проверки некоторых условий, вместо этого он предоставляет вам данные, которые вы просили — условия могут быть проверены на вашей стороне напрямую, вы можете сами инициировать транзакцию или изменение статуса.

Тем не менее вы не можете полагаться на распределенную сеть для получения внешних данных, так как приложения / сервисы, выполняемые в цепочках, живут в собственной замкнутой среде, и именно поэтому вам нужны оракулы для ввода внешних данных. Растущие потребности в данных — это результат быстро растущих индустрий и соответственно находить данные, правильно их вытаскивать из реального мира становится все сложнее и сложнее. Однако, часто неправильное представление использования оракулов вызвано слабым пониманием того, какие данные вы хотели бы получать от оракулов.

Например, рынки предсказаний, такие как Augur или Gnosis, призваны дать хороший и надежный индикатор эволюционирующих настроений (или знаний) толпы вокруг фактов которые произойдут в будущем. Рынки предсказаний часто упоминаются как оракулы, но в более широком и совершенно другом смысле, чем мы обсуждали выше.

Еще один момент, который стоит обсудить, заключается в следующем: хотим ли мы назвать оракулом, только то что является например потоком котировок? Это всего лишь источник данных, и в большинстве случаев он не будет иметь никаких связей с блокченом.

Финансовые учреждения часто считают «Bloomberg» или «Reuters» в качестве оракулов, но на самом деле используют их как источник данных. Быть оракулом, это значит взять на себя все сложности взаимодействия с блокчейном, а они не заинтересованы делать это, так как это требует дополнительных затрат и ресурсов.

Тем не менее, оракул может предоставить доступ к данным Bloomberg, после того как выберет подходящий источник и правильную форму данных. Ссылаться на тех, кто представляется как «оракул» но на самом деле является «источником данных», это еще одно неправильное использованием этого термина.

Чтобы более глубоко понять это, мы можем определить 3 объекта:

  • источник данных
  • запрос
  • Оракул/Сеть оракулов

Что касается источника данных — это источник информации, которую вы ищете, это может быть что угодно в зависимости от вашего фактического запроса, например это может быть Augur (при рассмотрении будущих событий/фактов), “Bloomberg” (при поиске финансовых данных), «Bitcoin blockchain» (при поиске address balance, данных транзакции OP_RETURN или любых других данных блокчена), «WolframAlpha» (при поиске ответа на заданный запрос в Wolfram Alpha) или… “Web”? Получение веб-данных или данных с API является самым простым и распространенным местом, с которого вы можете получать данные.

Запрос — это алгоритм, который может понять выбранный вами источник данных, чтобы предоставить вам нужные данные.

Оракул/Сеть оракулов — это сторона которая отвечает за подключение к источнику данных. Здесь нужно обсудить два вопроса:

  1. Почему я должен доверять источнику данных? Большую часть времени вы не должны доверять. Найти консенсус различных источников данных — это хороший способ дать дополнительную надежность, при этом все еще используя «централизованные» данные
  2. Что, если Оракул/Сеть оракулов вернет мне неправильный результат? И это основной момент, предлагающий использовать консенсус оракулов вместо одного оракула. Но подождите, нет ли другого способа предотвратить возможность того, что бы оракул подделывал данные? Давайте поговорим об этом немного.

Подход Oraclize в качестве оракула отличается.

Вы можете рассматривать это как нечто среднее между оракулом и расширенной сетью оракулов. Oraclize потенциально может вернуть вам ответ, но не может изменять данные, поступающие из выбранного вами источника данных.

Вот почему мы относимся к сервису Oraclize как «доказуемо-честному». Это возможно благодаря TLSNotary/pagesigner.

Это модификация TLS, которая используется службой oracle для предоставления криптографических доказательств, показывающих, что данные, которые вам предоставили, были действительно теми, которые данный сервер дал нам в определенное время.

Помимо предоставления этого доказательства, Oraclize распространяет доказательство и через постоянную сеть Будучи также частью консорциума IPFS persistence consortium , наши доказательства имеют хорошие шансы быть доступными даже если наша система недоступна (по какой-либо причине).

Мы предоставляем инструменты для проверки нашей честности с помощью которых вы можете сделать эту проверку самостоятельно.

Здесь, например, наш сетевой монитор для Ethereum который подключается на вашей, клиентской стороне (вот почему это так тяжело) с публичными нодами Ethereum и шлюзом IPFS (или с вами сами, если хотите), чтобы вы смогли находить транзакции Oraclize и доказать правдивость верифицировав их.

При том вы можете легко контролировать сеть самостоятельно, чтобы гарантировать, что Oraclize ведет себя честно, и мы действительно хотим побудить вас сделать это!

Что это значит на практике? Если мы изменим ваши данные, любой может проверить это в любое время, автоматически и в одно мгновение и наша репутация будет потеряна.

Если вам кажется, что наши ответы по-прежнему звучат слишком рискованно, вы, вероятно, захотите дождаться, когда мы выпустим релиз с открытым кодом для Ethereum, над которым мы работаем.

Это означает, что ваш код смарт-контракта может получать доказательство в TLSNotary самостоятельно, и если данные недействительны то вы можете отбросить данные Oraclize.

По нашему мнению, сервис Oraclize является хорошим компромиссом для решения «проблемы оракулов» который сегодня работая таким образом подходит блокчейну и смарт-контрактам. Наличие сети оракулов поможет решить проблему «цензуры/простоя», но риски, связанные с использованием единственного оракула, резко сокращаются благодаря новому подходу Oraclize.

Источник: https://habr.com/post/332678/

Оракулы в мире блокчейна: Как это работает

Рассказываем, что такое оракулы, почему они жизненно важны для смарт-контрактов и какое будущее ждет эту технологию.

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

Похожим образом блокчейны, лежащие в основе биткоина (Bitcoin) и эфира (ETH/USD), не имеют доступа к информации за пределами цепочки блоков, поэтому не могут самостоятельно проверить условия, лежащие в основе смарт-контрактов. Оракул занимается переводом информации из внешних источников в доступную для блокчейна форму.

Оракулы предоставляют необходимые сведения для работы смарт-контрактов, когда удовлетворяются их условия. Ими могут выступать любые данные — температура, изменение цены, статус платежа и др. Оракулы — единственный способ взаимодействия смарт-контрактов со внешней средой за пределами блокчейна.

Насколько важны оракулы?

В древних мифах герои всецело полагались на оракулов. Современные смарт-контракты тоже не могут без них обходиться. Без доступа к источникам информации за пределами блокчейна сфера применения смарт-контрактов сократится до минимума.

С другой стороны, с помощью оракулов смарт-контракты смогут найти применение практически в любой доступной области. Как только данные попадают в блокчейн, включаются смарт-контракты и выполняют заложенные условия. Развитие этой технологии произведет революцию во многих отраслях экономики.

Почему децентрализованные приложения не могут обойтись без оракулов?

Дело в фундаментальном различии форматов. Блокчейн полностью детерминирован. События (транзакции) в нем проходят в строгой последовательности. Доступ к внешней информации нарушает эту последовательность и лишает применение блокчейна всякого смысла. Эта особенность предотвращает любое изменение сохраненных данных, но ограничивает гибкость.

В отличие от этого мир за пределами блокчейна вовсе не является детерминированным. События здесь происходят не строго по порядку, что приводит к некоторым проблемам с прозрачностью. Данные могут создаваться и использоваться в любой момент. Растет гибкость, но возникают трудности в обмене информацией с блокчейном.

Фундаментальное различие по умолчанию делает оба мира несовместимыми друг с другом, и только присутствие оракулов позволяет наладить обмен информацией между ними.

Каковы последние достижения в развитии этой технологии?

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

Высокая потребность во внешней информации для работы блокчейна привела к возникновению ряда интересных проектов. Например, некоторые оракулы умеют связывать распределенные базы с любым существующим API, проводить транзакции через традиционные платежные системы и обеспечивать взаимодействие смарт-контрактов с различными блокчейнами.

Кто лидирует в этой области?

Рынок специализированных посредников стремительно растет — каждый день возникают новые способы применения блокчейна. В дальнейшем спрос будет только увеличиваться.

В настоящее время проектами в этой области занимаются несколько компаний. Прежде всего следует отметить Oraclize — признанного лидера в разработке оракулов.

Другие стартапы, такие как ChainLink и Blocksense, тоже стараются захватить рыночную долю в этой области. Кроме того, технологией заинтересовались некоторые крупные корпорации (IBM и Microsoft).

В настоящее время они занимаются разработкой соответствующих платформ.

Чего ждать в будущем?

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

В будущем возможно появление единой интегрированной платформы для связи блокчейна с окружающим миром. Стандартизированные инструменты и интерфейсы упростят использование блокчейн-сервисов для пользователей и разработчиков. Мы, вероятно, станем свидетелями ожесточенной конкуренции между различными стандартами, пока один или несколько из них не получат широкого признания.

Подготовила Тая Арянова

Источник: https://ru.ihodl.com/tutorials/2017-11-30/orakuly-v-mire-blokchejna-kak-eto-rabotaet/

Oracle выпускает облачный сервис Oracle Blockchain Cloud Service корпоративного уровня

Новинка позволяет организациям безопасно расширять бизнес-приложения и процессы, ускорять транзакции по всей экосистеме партнеров.

Предоставляя клиентам возможность использовать одну из самых перспективных новейших технологий, корпорация Oracle анонсировала Oracle Blockchain Cloud Service.

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

Как часть Oracle Cloud Platform, сервис Oracle Blockchain Cloud Service предлагает платформу блокчейна корпоративного уровня с лидирующими в отрасли гибкостью, масштабируемостью и безопасностью.

Он полностью управляется Oracle, обеспечивает быстрое предоставление ресурсов клиентам и упрощает процессы благодаря встроенным функциям мониторинга, непрерывного резервного копирования и возможностью восстановления на заданный момент времени.

Стремясь реализовать преимущества блокчейна для корпоративных клиентов, корпорация Oracle недавно присоединилась к проекту Hyperledger.

Реализуемый в рамках консорциума Linux Foundation, проект Hyperledger предполагает совместную работу над открытым исходным кодом, созданным для продвижения межотраслевых технологий блокчейна.

Используя открытые источники и поддерживая совместимость с открытыми стандартами, Oracle позволяет клиентам извлекать выгоду из всех инноваций с открытым исходным кодом и избегать «привязки к вендору».

Облачный сервис Oracle Blockchain Cloud Service позволяет:

  • Получать бизнес-результаты, давая возможность быстро и легко создавать и масштабировать сеть участников по всему миру, обеспечивая при этом бесперебойную работу, высокую надежность и предлагая функции автономного восстановления.
  • Ускорять инновации с помощью облачных приложений Oracle Cloud Applications, расширив границы предприятия, чтобы уменьшить несоответствия в существующих бизнес-процессах и внедрить новые бизнес-модели с возможностью доступа к новым потокам доходов. Инструментарий Applications Integration включает интегрированные приложения, образцы кода и шаблоны проектирования, чтобы ускорить интеграцию приложений блокчейна в Oracle SaaS и в локально развернутые  приложения.
  • Ускорять бизнес-процессы благодаря надежному обмену информацией в реальном времени в рамках существующих облачных комплексов Oracle ERP Cloud, Oracle SCM Cloud, Netsuite SuiteCloud Platform или заказных приложений блокчейна.
  • Снижать риски и повышать эффективность за счет надежной автоматизации транзакций между организациями и обеспечения обмена информацией как внутри, так и за пределами границ предприятия. В сочетании эти возможности могут помочь организациям снизить издержки при выполнении транзакций, уменьшить риски безопасности и конфиденциальности, упростить проведение аудита на предприятиях и соблюдение требований регуляторов. Благодаря уже скомпонованной и управляемой облачной платформе, клиенты могут также упростить эксплуатацию, динамически изменять конфигурацию сети, быстро выявлять и в режиме реального времени устранять проблемы с помощью панелей мониторинга. Кроме того, поскольку технология блокчейна быстро развивается, Oracle планирует оставаться на вершине ее новейших возможностей.
  • Ускорять выход на рынок с помощью REST API и расширенных возможностей интеграции в Oracle Cloud Platform. Можно начать разрабатывать приложения блокчейна в течение нескольких минут без сложной настройки и выделения ресурсов, а также использовать разработку облачных или локальных приложений, основанную на API, применяя REST API и сервис управления API, чтобы легко запускать сервисы блокчейна из Oracle Cloud напрямую или с помощью преднастроенных интеграционных решений.

Кроме того, Oracle планирует предложить Oracle BlockChain Cloud Service как часть платформы Oracle Platform for Open Banking и обеспечить бесшовную связь между Oracle FLEXCUBE и другими банками, чтобы обеспечить большую безопасность, масштабируемость и прозрачность информационного обмена.

Готовые средства взаимодействия и бесшовная интеграция — подтверждения

Источник: http://www.logistics.ru/automation/news/oracle-vypuskaet-oblachnyy-servis-oracle-blockchain-cloud-service-korporativnogo

Корпоративный облачный блокчейн-сервис Oracle выпущен в продажу | Новости | Компьютерное Обозрение

Облачный сервис Oracle Blockchain Cloud Service позволяет организациям легко создавать блокчейн-сети для более безопасных и эффективных транзакций и отслеживания товаров по цепочкам поставок в глобальном масштабе.

Технология блокчейн потенциально способна коренным образом изменить методы ведения бизнеса в любой отрасли, сделав взаимодействие более безопасным, прозрачным, эффективным и экономичным.

Oracle Blockchain Cloud Service предоставляет клиентам платформу разработки для создания собственных каналов безопасного обмена информацией и быстрой интеграции с SaaS-сервисами Oracle и приложениями других поставщиков, которые они уже используют, а также для интеграции с другими блокчейн-сетями и PaaS-сервисами Oracle.

Кроме того, платформа позволяет пользователям выделять ресурсы для блокчейн-сетей, присоединяться к другим организациям, развертывать и выполнять смарт-контракты для обновления регистра и выполнения запросов к нему.

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

Блокчейн-платформа Oracle построена на основе Hyperledger Fabric от Linux Foundation.

В ней преконфигурированы все базовые инфраструктурные зависимости, управление жизненным циклом контейнеров, службами событий, идентификационными сервисами, прокси-сервер REST, ряд инструментов мониторинга и операционной поддержки, интегрированных в единой консоли, что ускоряет процесс настройки и разработки приложений. Oracle Blockchain Cloud Service – это облачная платформа, управляемая и поддерживаемая Oracle, с гарантией доступности на уровне 99,95% согласно SLA, на базе конфигурации высокой доступности. Платформа обладает автономными агентами восстановления и функционалом непрерывного резервного копирования регистра, что позволяет реализовать функции аварийного восстановления в конфигурации с несколькими дата-центрами в доменах высокой доступности.

Она также позволяет воспользоваться широкими возможностями Oracle Cloud Platform для бесшовной и простой интеграции (plug-and-play) с существующими облачными и локальными приложениями, управлением посредством API-интерфейсов, средами и инструментами разработки приложений.

Кроме того, Oracle предоставляет новые SaaS-приложения для использования технологии блокчейн в типовых сценариях, таких как отслеживание и регистрация продукции, идентификация ее происхождения, гарантия и использование, контроль над исполнением холодильных цепей.

Возможность применения подхода plug-and-play к приложениям Oracle и других поставщиков приводят к более быстрой интеграции с различными системами хранения записей, значительно сокращая время выхода на рынок и повышая отдачу от использования блокчейн-платформы в разных сценариях использования приложений.

Источник: https://ko.com.ua/korporativnyj_oblachnyj_blokchejn-servis_oracle_vypushhen_v_prodazhu_125335

Еще один ИТ-гигант: Oracle присоединяется к индустрии блокчейна

Автор

Adem

В полку разработчиков корпоративных блокчейнов прибыло: транснациональная корпорация Oracle официально присоединилась к индустрии блокчейна. В это месяце компания на конференции OpenWorld 2017 в Сан-Франциско презентовала свою корпоративную облачную платформу, помогающую клиентам создавать блокчейновые приложения и управлять ими.

Ожидается, что полноценный запуск платформы произойдет в следующем году. Благодаря этой разработке Oracle присоединяется к уже весьма многочисленный семье бизнес-платформ на основе концепции BaaS (blockchain-as-a-service – блокчейн как услуга), в которую уже входят такие технологические гиганты, как IBM и Microsoft.

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

Компания хочет привлечь к использованию платформы как крупные, так и небольшие фирмы, однако Фрэнк Сюн (Frank Xiong), вице-президент направления Blockchain Cloud Service, утверждает, что стартапы, желающие протестировать технологию умных контрактов или другие приложения, смогут сделать это недорого с помощью облачной платформы, потому что ценообразование сервиса основано на объеме транзакций.

Для существующих клиентов, использующих ERP-системы, платформа обеспечит способ связи с внешними партнерами и клиентами, благодаря конфиденциальному и безопасному их подключению к внутренним каналам и процессам компании. Сюн объясняет:

Пока окончательная дата официального запуска платформы не объявлена, однако Сюн говорит, что она станет доступна в 2018 году.

Союзники, а не конкуренты

Так как Oracle — один из крупнейших и наиболее авторитетных поставщиков СУБД (система управления базами данных) в мире, появилось мнение, что теоретически компания может «раскулачить» свой основной бизнес-сегмент, присоединив технологию блокчейна, которая по своей природе позволяет распространять информацию без необходимости доверять центральному администратору.

Тем не менее, Сюн быстро отверг такую возможность, а также мнение о том, что блокчейны и базы данных следует рассматривать как конкурентов.

«Мы действительно думаем, что это преимущество для нас», — сказал он, утверждая, что идея о том, что блокчейны являются «распределенными базами данных», не совсем точна.

Поскольку копии данных в блокчейне должны храниться различными пирами и узлами, пояснил он, распространение блокчейна среди основной клиентской базы Oracle фактически создаст новый спрос на традиционные решения для хранения данных компании. Он отметил:

#Oracle #блокчейн в промышленности #частные блокчейны

Подписывайтесь на новости и их анализ в нашем Telegram канале!

Источник: https://bits.media/eshche-odin-it-gigant-oracle-prisoedinyaetsya-k-industrii-blokcheyna/

Крупные компании заинтересованы в блокчейне: история проектов IBM, Oracle и Microsoft

Крупный бизнес с вековой историей интегрирует блокчейн в свою структуру. Такие предприятия, как IBM, Microsoft, Oracle пытаются адаптировать технологию распределенного реестра к своей деятельности. Блокчейн стал популярен за счет роста интереса к биткоину, потому что это криптовалюта функционирует на его основе.

Крупные корпорации идут в ногу со временем

Компания IBM строит один из самых мощных в мире пулов из 60 дата-центров, которые будет сдавать в аренду другим предприятиям. Эта фирма одной из первых увидела в блокчейне перспективы, которые способны произвести революцию в некоторых сферах бизнеса. Начинающие предприниматели смогут бесплатно воспользоваться облачным хостингом, управляемым при помощи блокчейна.

Компания IBM существует на рынке 106 лет, ее интерес к технологиям распределенного реестра лишний раз демонстрирует, как сильно крупный бизнес увлечен блокчейном. Если раньше технология ассоциировалась с теневым рынком криптовалют и дилерами наркотиков, то теперь станет основой деятельности ведущих предприятий мира.

Как сообщает компания Markets & Markets, рынок сервисов на основе блокчейна к 2022 году достигнет объема в $7,7 миллиардов.

Даже такие мастодонты, как Microsoft и Oracle начинают переходить на такие виды работы с данными, которые будут основаны на технологии распределенных реестров.

Какие преимущества даст блокчейн

Многие компании могут найти пользу в блокчейне. Например, в сложных видах бизнеса вроде розничной торговли можно учитывать всю цепь поставок при помощи этой технологии. Что касается компании IBM, то ее дилеры стали получать комиссию не только за продажи продукции, но и за подключение клиентов к сети блокчейна, которая у них называется Big Blue.

Блокчейн позволяет компаниям, ведущим бизнес друг с другом, безопасно фиксировать сделки. Его сила и главное преимущество заключается в том, что он работает в среде с нулевым доверием: подделать, изменить записи нельзя.

Цепочка блоков информации может содержать огромное количество данных: документы, записи о сделках и остатках на складе. Гораздо больше параметров можно проанализировать и учесть при помощи блокчейна, чем это можно было делать раньше.

В самом блокчейне можно хранить встроенные контракты, например, договор на аренду автомобиля.

Рынок хранения баз данных может тоже измениться. Скорее всего, компании смогут выстраивать собственные системы хранения информации, не полагаясь более на услуги третьих лиц.

Работы уже ведутся

Компания Oracle в октябре 2017 года анонсировала запуск подразделения Oracle Blockchain Cloud Service, оно позволит клиентам расширить функционал существующих приложений (например, систем, используемых для управления ресурсами предприятия).

В ноябре ее конкурент SAP SE сообщил, что будет выстраивать облачную службу для производственных предприятий, для обслуживания цепочек поставок.

Компания Microsoft давно входит в консорциум R3, который разрабатывает решения на основе блокчейна для банковских и финансовых учреждений.

Исследовательское агентство Juniper Research провело опрос 400 топ-менеджеров и технических директоров крупных компаний. Выяснилось, что 6 компаний из 10 намерены использовать блокчейн. Среди них – платежный сервис Visa, сеть универсамов Wal-Mart.

Интеграция блокчейна в деятельность крупных корпораций увеличит продажи облачных сервисов, систем для обработки баз данных, серверов на 35%, считает глава исследовательской компании WinterGreen Research Сьюзан Эустис. В течение 5 лет 55% крупных компаний с численностью персонала более 1000 человек будут использовать облачные сервисы вместо собственных дата-центров. Сейчас только 17% предпочитают такой метод хранения информации.

По всей видимости, в течение ближайших десяти лет почти не останется крупных фирм, которые смогут обходиться без технологий распределенного реестра в своей работе.

Источник: miningbitcoinguide.com

Источник: https://ecrypto.ru/blokchejn/krupnye-kompanii-zainteresovany-v-blokchejne-istoriya-proektov-ibm-oracle-i-microsoft.html

Blockchain oracles (Блокчейн предсказания)

Blockchain oracles звучат как нечто из древнегреческой мифологии и в некотором роде они функционируют в подобной роли. В древних историях людям не хватало информации для принятия решений и обращалось к оракулам за информацией.

Они точно так же, как Blockchains Bitcoin и Ethereum, не имеют открытого доступа к информации за пределами цепочки, и поэтому нет прямого способа проверить условия, на которых основаны интеллектуальные контракты (смарт-контракты). Оракул, просто говоря, переводчик для информации, предоставляемой внешней платформой.

Blockchain oracles предоставляют необходимые данные для запуска и выполнения smart contracts, когда исполнены первоначальные условия контракта. Эти условия могут быть связаны с умным контрактом – тенденциями, завершением платежа, ценовыми изменениями и т.д. Блокчейн предсказания – единственный способ взаимодействия смарт-контрактов с данными вне среды Blockchain.

Насколько важны Блокчейн оракулы?

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

После того, как данные попадают в Blockchain, информация может использоваться для выполнения контрактов и предоставления прецедентов, которые могут нарушить работу отраслевых структур.

Почему децентрализованные приложения не могут общаться с реальным миром без оракулов?

Существует принципиальное отличие форматов. Blockchain является детерминированным, что означает отражение определенной серии событий, которые происходят один за другим в последовательном порядке – серии транзакций.

Для доступа к информации за пределами цепочки потребуются данные, которые не являются последовательными и поэтому Blockchain не сможет использовать их. Этот аспект Blockchain дает ему неизменность, но снижает гибкость.

Однако мир вне сети не является детерминированным, что означает отсутствие записи последовательности событий, которые они имели, что создает проблемы с прозрачностью. Точки данных могут генерироваться и происходить в любой момент времени, обеспечивая повышенную гибкость, но трудности в общении с Blockchain.

Это фундаментальное различие делает два мира несовместимыми друг с другом по умолчанию и только присутствие Blockchain oracle может сделать двустороннюю связь между ними возможной.

Какие последние события произошли?

Передовые разработчики Blockchain совершают постоянный прогресс в отношении способов сделать Блокчейн более интегрированным с внешним миром. Поскольку оракулы сами по себе являются смарт-контрактами, предназначенными для взаимодействия с Blockchain посредством предоставления необходимых данных, им требуются разработчики с опытом в нецелевой и в децентрализованной областях.

Недавняя и глубокая потребность во внешних данных для Blockchain породила новые и интересные события в сфере финансов. Например, Блокчейн оракулы позволяют подключать Blockchain к любому существующему API, разрешают платежи с использованием традиционных платежных сетей и разрешают последовательные соединения между smart contract и другими блочными цепочками.

Какие компании находятся на переднем плане развития современного оракула?

Рынок этих систем промежуточного программного обеспечения быстро растет и, поскольку новые способы использования технологии Blockchain придумываются каждый день, спрос будет только увеличиваться.

В настоящее время рынок для этих видов контрактов продолжает расширяться и его возглавляется несколькими компаниями, которые активно занимаются разработкой оракулов. Oraclize является лидером в области технологий оракула.

Другие стартапы, такие как ChainLink и Blocksense, также стремятся взять на себя долю рынка в этой области.

Наконец, крупные корпорации (IBM и Microsoft) видят потенциал для своего присутствия на рынке и сейчас разрабатывают эти платформы.

Какие тенденции мы должны ожидать в будущем?

По мере того, как использование smart contract продолжает расти, потребность в новых вариантах оракула также будет возрастать в качестве основной структуры, которая делает возможными смарт контракты. Это приведет к увеличению инвестиций и созданию нового направления в рыночном пространстве, а новые инновации сделают более простым и элегантным взаимодействие Blockchain-to-web.

Одной из наиболее вероятных будущих тенденций является создание единой интегрированной платформы для взаимодействия между Blockchain и внешним миром.

Стандартизированные инструменты и интерфейсы упростят работу как для разработчиков, так и для пользователей служб с поддержкой Blockchain.

Это означает, что мы, вероятно, увидим жесточайшую конкуренцию между несколькими компаниями, пока один или несколько из них не достигнут широкого признания.

Источник: https://coinportal.ru/knowledge-base/blockchain-oracles-blokchejn-predskazaniya/

Корпоративный блокчейн от Oracle появится в 2018 году

Что сегодня нужно для внедрения блокчейна на предприятия[? Об этом рассказал директор по управлению блокчейн-продуктами в корпорации Oracle, Марк Рахмилевич.

О запуске облачного сервиса на основе технологии блокчейна для корпоративных клиентов – Oracle Blockchain Cloud Service – компания Oracle заявила в октябре прошлого года. Такого решения от Oracle мало кто ожидал.

Компания является крупнейшим мировым разработчиком СУБД, и вдруг переходит на децентрализованную систему. Однако в Oracle увидели перспективность решения. Нововведение вошло в продукт Oracle Cloud.

По задумке разработчиков, облачный корпоративный блокчейн-сервис будет обладать упрощенным мониторингом, непрерывным резервным копированием, возможностью оперативно передавать данные и восстанавливать их.

Вместе с тем, в корпоративном блокчейне с открытым исходным кодом появятся система дополнительной безопасности, разграничение доступа к конфиденциальной информации и API для того, чтоб надстраивать приложения.

По словам Марка Рахмилевича, требования клиентов к новому сервису сводятся к пяти основным параметрам:

  • высокой масштабируемости;
  • операционной устойчивости;
  • безопасности и конфиденциальности;
  • поддержке и управлению;
  • интеграции в существующую модель.

Автор отмечает, что бизнес обеспокоен созданием крупных блокчейнов с сотнями участников, ростом объемов транзакций и времени их ожидания. Необходимо увеличить пропускную способность для бизнес-процессов, которые должны перейти на блокчейн-приложения.

«Для достижения этих ограничений (прим. ред.: указанных выше пяти параметров) требуется архитектурный подход, который разделяет задачи, – предлагает Марк Рахмилевич. – Работы выполняются на отдельных, независимо масштабируемых серверах. Подход использует асинхронные потоки, параллелизацию, более быстрые консенсусные протоколы и работает в оптимизированных средах».

Корпоративный блокчейн-сервис Oracle построен на коде проекта Hyperledger Fabric, который уже использует некоторые принципы архитектурного подхода.

За операционную устойчивость в Oracle отвечает программное обеспечение, которое использует синхронизацию сервисов и избыточность. Так же оперативно и без ручного вмешательства решить проблему помогут автономный мониторинг, восстановление отказоустойчивых компонентов и резервное копирование.

Что касается безопасности, в корпоративном блокчейне все участники должны быть известны и зарегистрированы. Сертификаты идентифицируют участника по криптографическому ключу, который аутентифицирует сообщения с цифровой подписью.

Это позволяет сетям и клиентам проверять отправителя и сообщение. Особое внимание нужно уделить выдаче сертификатов, в том числе их отзыву, например, в случае кражи учетных данных.

Кроме того, по мнению блокчейн-специалиста, повсеместное автоматическое шифрование предотвратит хакерские атаки.

«В дополнение к внешней безопасности корпоративный блокчейн должен иметь возможность проводить конфиденциальные транзакции, например, используя каналы в Hyperledger Fabric, которые изолируют одноранговые сети и поддерживают частные реестры, которые доступны только другим одноранговым сетям на одном канале», – советует Марк Рахмилевич.

Обслуживать корпоративный блокчейн, по словам эксперта, может сам блокчейн, но уже как поставщик услуг. Сервис использует готовую к развертыванию инфраструктуру и операционные возможности, в то время как предприятия больше ориентируются на стоимость приложений, которые предоставляет блокчейн.  

Основные банковские операции, планирование корпоративных ресурсов, управление людьми и поставками в скором времени перейдут на блокчейн. Интеграция технологии в текущие системы предприятий – дорогостоящий процесс. В этом вопросе перспективным подходом Марк Рахмилевич называет интеграции приложений, которые ориентированы на типичные бизнес-процессы.

Сегодня компании, включая и Oracle, создают блокчейн-платформы с учетом этих пяти требований, поэтому эксперт надеется, что в 2018 году корпорациям удастся перейти от экспериментов к реальной эксплуатации.

С идеей корпоративного блокчейна Oracle присоединилась к крупнейшим разработчикам программного обеспечения IBM и Microsoft.

Компания Oracle готова сотрудничать как с гигантами, так и со стартапами, уточняя, что стоимость услуг, например, на смарт-контракты, зависит от числа транзакций.

Источник

[ ОБСУДИТЬ НА ФОРУМЕ ]

Источник: https://promining.net/ru/korporativnyy-blokcheyn-ot-oracle-poyavitsya/

oracle: блокировки (locks), защёлки (latches), enqueues

Блокировки 
Типы блокировок
Где хранится информация о блокировках? ITL, INITRANS, MAXTRANS 
Выполнение блокировок с помощью защелок 

Принципы блокирования в СУБД Oracle.  Разница между блокировками и защёлками.

Защелка (latch) – устанавливается, если кто-то работает с определенным участком памяти, и, как следствие, никто другой теперь в этот участок не попадет.

Блокировка – никого не допускает к строкам таблицы, если Вы меняете ее.

Блокировка реализуется с помощью защёлки 

Мы работаем с записью. Она уже находится в буфере в SGA. Запись эту нужно заблокировать, чтобы никакая другая сессия не заблокировала ее. Наш серверный процесс вешает защелку на буфер с записью, читает буфер, находит нужную запись, ставит отметочку о том, что эта запись заблокирована нами. Таким образом, блокировка создана.

Снимаем защелку. Работаем с записью. Все прочие сессии, пока защелка закрыла буфер, ждали ее снятия. Как только защелка снята, очередной процесс устанавливает защелку на этот буфер, читает, находит запись, обнаруживает нашу блокировку, снимает свою защелку и ждет, когда мы снимем блокировку.

Типы блокировок

0 — none

1 — null (NULL)
2 — row-S (SS) разделяемая блокировка строки (RS) при выполнении select for update;
3 — row-X (SX) монопольная блокировка строки (RX) при выполнении операторов insert, delete, update;
4 — share (S) разделяемая блокировка таблицы share mode, генерируется, например, оператором lock table in share mode;
5 — S/Row-X (SSX) (разделяемая блокировка таблицы и монопольная блокировка строк share row exclusive; генерируется, например, оператором lock table in share row exclusive mode;
6 — exclusive (X) монопольная блокировка ( X) при выполнении lock table.

Режимы  4 — share (S) и 5 — S/Row-X (SSX) встречаются крайне редко.

Блокировки DML

TX — блокировка транзакций

устанавливается при выполнении следующих операторов insert, delete, update, select for update. Блокировки транзакций работают только в режиме (lmode) — 6 exclusive (X) монопольная блокировка.

Блокировки транзакций всегда осуществляются на уровне строк: блокируется строка и предотвращается изменение строки другими транзакциями до тех пор, пока не буде выполнен откат текущей транзакции или транзакция не будет зафиксирована. Чтобы была установлена блокировка TX, сначала устанавливается блокировка TM для таблицы в режиме 3 (RX).

Затем устанавливается блокировка TX в режиме 6 (X). Блокировка TX не будет установлена, если другая транзакция установила блокировку TX на эту же строку.

TM — блокировки очерёдности DML

применяются, если в транзакции выдается один из операторов insert, delete, update, select for update, lock table. Таблицы блокируются ораклом, чтобы зарезервировать доступ к таблице и предотвратить конкуренцию между операторами DDL за таблицу.

Проще говоря, блокировка таблиц (TM) позволяет быть уверенным, что структура таблицы не изменится при изменении её содержимого.

Блокировки TM могут быть в следующих режимах (lmode) : 3- row exclusive монопольная блокировка строки (RX) при выполнении операторов insert, delete, update; 2- row share разделяемая блокировка строки (RS) при выполнении select for update; 6 – exclusive монопольная блокировка ( X) при выполнении lock table.

  На рисунке показаны режимы блокировки таблиц и операции, которые эти блокировки разрешают и запрещаютСледующий рисунок показывает, что будет если один процесс держит блокировку, а второй пытается её получить на один и тот же ресурс:

Блокировки DDL 

Exclusive DDL locks(исключительные блокировки): These prevent other sessions from gaining a DDL lock or TM (DML) lock themselves. This means that you may query a table during a DDL operation, but you may not modify it in any way. (Предотвращают установку DDL блокировок или TM(DML) блокировок другими сеансами. Можно запрашивать таблицу, но нельзя её изменять ).

Share DDL locks (разделяемые блокировки): These protect the structure of the referenced object against modification by other sessions, but allow modifications to the data.

Breakable parse locks (нарушаемые блокировки разбора): These allow an object, such as a query plan cached in the shared pool, to register its reliance on some other object.

If you perform DDL against that object, Oracle will review the list of objects that have registered their dependence and invalidate them.

Hence, these locks are breakable—they do not prevent the DDL from occurring.

( Они позволяют объекту, например плану запроса, хранящемуся в кэше разделяемого пула, зарегистрировать свою зависимость от другого объекта. При выполнении оператора DDL, затрагивающего заблокированный таким образом объект, сервер Oracle получает список объектов, зарегистрировавших свою зависимость, и помечает их как недействительные. Вот почему эти блокировки — «нарушаемые»: они не предотвращают выполнение операторов DDL ).

Latches (защёлки)

Защелки — это блокировки, удерживаемые в течение очень непродолжительного времени, достаточного, например, для изменения структуры данных в памяти. Они используются для защиты определенных структур памяти, например буферного кэша или библиотечного кэша в разделяемом пуле. Защелки обычно запрашиваются системой в режиме ожидания.

Это означает, что, если защелку нельзя установить, запрашивающий сеанс прекращает работу («засыпает») на короткое время, а затем пытается повторить операцию. Другие защелки могут запрашиваться в оперативном режиме, т.е. процесс будет делать что-то другое, не ожидая возможности установить защелку.

Поскольку возможности установить защелку может ожидать несколько запрашивающих сеансов, одни из них будут ожидать дольше, чем другие. Защелки выделяются случайным образом по принципу «кому повезет». Сеанс, запросивший установку защелки сразу после освобождения ресурса, установит ее.

Нет очереди ожидающих освобождения защелки — есть просто «толпа» пытающихся ее получить.

Enqueues( англ. — ставит в очередь)

Внутренние блокировки — более сложное средство обеспечения очередности доступа, используемое, например, при изменении строк в таблице базы данных. В отличие от защелок, они позволяют запрашивающему «встать в очередь» в ожидании освобождения ресурса. Запрашивающий защелку сразу уведомляется, возможно ли это. В случае внутренней блокировки запрашивающий блокируется до тех пор, пока не сможет эту блокировку установить. Таким образом, внутренние блокировки работают медленнее защелок, но обеспечивают гораздо большие функциональные возможности. Внутренние блокировки можно устанавливать на разных уровнях, поэтому можно иметь несколько «разделяемых» блокировок и блокировать с разными уровнями «совместности».

Источник: http://aguppi.blogspot.com/2011/04/oracle-locks.html

Задания в Oracle9i

В Oracle существует возможность запланировать выполнение определенного набора действий в виде заданий. Задание может, представляет собой хранимую процедуру, анонимный блок PL /SQL, внешнюю процедуру на языке C или Java.

Время выполнения может иметь значение любого времени суток и подчинятся заданному интервалу. Это хорошо подходит для переноса тяжёлых в обработке расчётов на менее загруженное ночное время. По умолчанию выполнение заданий выключено.

Поэтому надо провести небольшую дополнительную настройку сервера.

Настройка сервера

Для того чтобы задания начались выполняться необходимо, установить параметр инициализации JOB_QUEUE_PROCESSES. Изначально он имеет значение 0 и задаёт максимальное количество фоновых процессов для выполнения заданий. В версии Oracle 9.

2 максимальное значение этого параметра может составлять 1000. На практике же обычно можно ограничиться не более 5 процессами. В любом случае вы всегда можете изменить это значение с помощью команды ALTER SYSTEM SET без перезагрузки сервера.

Итак, для начала внесем новую строчку в файл инициализации и перезагрузим сервер:

JOB_QUEUE_PROCESSES = 5

В файле alert.log мы увидим, что в момент, когда стартуют фоновые процессы, у нас появилось новая запись:

CJQ0 started with pid=8

Это стартовал новый фоновый процесс CJQ0, так называемый координатор заданий. Что он делает и для чего он нужен, мы рассмотрим чуть ниже, а на этом предварительную настройку сервера можно считать законченной.

Процессы

Итак, процесс координатора заданий запущен, и как можно догадаться из его названия именно этот процесс осуществляет общее управление всеми заданиями. Для начала он выбирает таблицу SYS.JOB$, в которой хранятся параметры заданий.

Если среди заданий имеются те, которые будут выполняться в ближайший интервал времени указанный в скрытом параметре _JOB_QUEUE_INTERVAL (по умолчанию его значение составляет 5 секунд), то для них порождаются фоновые процессы очереди заданий Jnnn, которые в свою очередь создают сеансы для непосредственного выполнения запланированных действий.

Именно максимальное количество процессов Jnnn, которые могут быть одновременно запущены и отражает настраиваемый параметр JOB_QUEUE_PROCESSES.

После того как выбранным заданиям были выделены процессы Jnnn, координатор выжидает интервал времени, указанный в параметре _JOB_QUEUE_INTERVAL. Процессы заданий в тоже время продолжают работать.

После выполнения задания процесс Jnnn считается свободным, и координатор распределяет его на выполнение другого задания. Если такого задания не находится в течение определенного времени, то процесс Jnnn уничтожается.

В случае, когда процессов Jnnn не хватает, задание будет выполнено в тот момент времени, когда один из них освободится.

На заметку:

Выставляйте значение параметра JOB_QUEUE_PROCESSES чуть больше максимального количества одновременно запускаемых заданий. Маленькое значение может привести к сдвигу времени выполнения из-за конкуренции за процессы Jnnn. Большое значение к неоправданному запуску этих же процессов в исключительных ситуациях.

Создание заданий

Для управления заданиями в Oracle существует специальный пакет DBMS_JOB. С его помощью над ними можно осуществлять различные действия. Для начала попробуем создать новое задание. В нашем случае для этого, нужно применить следующую процедуру пакета:

DBMS_JOB.SUBMIT( JOB OUT BINARY_INTEGER, WHAT IN VARCHAR2, NEXT_DATE IN DATE DEFAULT SYSDATE, INTERVAL IN VARCHAR2 DEFAULT NULL, NO_PARSE IN BOOLEAN DEFAULT FALSE, INSTANCE IN BINARY_INTEGER DEFAULT any_instance, FORCE IN BOOLEAN DEFAULT FALSE);

Опишем параметры этой процедуры:

  • JOB — это идентификатор задания. Имеет уникальное значение для каждого задания, генерируемое системной последовательностью. Является выходным параметром. Его лучше запомнить, если потребуются дальнейшие действия над заданиями.

  • WHAT — тело задания. Представляет собой анонимный PL/SQL блок. Всё что здесь указано, будет выполнено в процессе работы задания. Если вы запускаете только одну процедуру, то можно не заключать её в блок достаточно поставить в конце названия процедуры точку с запятой.

    Значение WHAT в этом случае автоматически будет помещено в PL/SQL блок. Если процедура имеет строковые параметры, то они обязательно должны заключаться в две одинарные кавычки с каждой стороны.

    В PL/SQL блоке можно также писать DML и DDL команды, но нельзя производить создание и запуск заданий. Это только приведёт к ошибке ORA-32317. Если же используются ссылки на удалённую базу данных, то они должны явно включать имя и пароль. Анонимные ссылки здесь не поддерживаются.

    И, наконец, владельцу задания требуется явно предоставить привилегии, на объекты, используемые в теле задания.

  • NEXT_DATE — дата следующего выполнения задания. Время непосредственно задаётся владельцем или автоматически вычисляется Oracle.

    На заметку:

    Если вы введёте дату меньше чем текущую, то выполнение задания может начаться немедленно или отложится на неопределённое время. В этом случае попробуйте принудительно запустить задание или повторно изменить этот параметр, это инициирует немедленный запуск задания.

  • INTERVAL — формула интервала времени. Представляет собой DATE функцию. Именно от её правильного значения будет зависеть дата следующего выполнения задания казанного в столбце NEXT_DATE. Приведём некоторые примеры формулы интервала задания:

    Формула интервалаОписание
    NULL Задание выполнится однократно и удалится.
    TRUNC(SYSDATE+1)+n/24 Задание будет выполняться ровно в n часов каждого дня
    TRUNC(SYSDATE+1)+(n+(m/60))/24

    Задание будет выполняться ровно в n часов m минут каждого дня.

    TRUNC(LAST_DAY(SYSDATE))+(n+(m/60))/24

    Задание будет выполняться ровно в n часов m минут последнего дня каждого месяца.

    TRUNC(LAST_DAY(SYSDATE)+1)+(n+(m/60))/24

    Задание будет выполняться ровно в n часов m минут первого дня каждого месяца.

    На заметку:

    Учитывайте, что вычисление NEXT_DATE с помощью формулы интервала происходит после выполнения задания. Поэтому всегда учитывайте это время и старайтесь не ставить их на время близкое к окончанию суток из-за возможного неправильного расчёта следующей даты выполнения.

  • NO_PARSE — флаг разбора PL/SQL. Если его значение равно FALSE разбор происходит в момент установки задания. Иначе, в момент выполнения задания.

  • INSTANCE — какой экземпляр производит выполнение задания.

  • FORCE — если значение этого параметра истинно то в качестве INSTANCE может выступать любое положительное целое число. В противном случае экземпляр, указанный в INSTANCE должен быть обязательно запущен, иначе поднимается исключение.

На заметку:

При создании задания или изменения его параметров ORACLE записывает текущие параметры NLS владельца. Эти параметры каждый раз восстанавливаются при выполнении задания. Это может приводить к некоторым ошибкам в случае ожидания других значений. Поэтому если необходимо лучше производить установку нужных NLS значений с помощью команды ALTER SESSION в параметре WHAT задания.

В качестве примера создадим простое задание, которое при запуске будет делать паузу в 20 секунд, первый раз выполниться 1 января 2006 года в 1 час 5 минут и будет повторяться каждый день в то же самое время.

SQL> VARIABLE jobno NUMBER SQL> BEGIN 2> DBMS_JOB.SUBMIT(:jobno, 3> 'SYS.DBMS_LOCK.SLEEP(20);', 4> TO_DATE('01.01.2006 01:05','DD.MM.YYYY HH24:MI'), 'TRUNC(SYSDATE+1)+(1+(5/60))/24'); 5> COMMIT; — COMMIT обязателен! 6> END; Затрачено времени: 0.0 секунд(ы) SQL> PRINT jobno Переменная: JOBNO Значение: 24

Изменение задания

И так задание создано. Теперь попробуем изменить некоторые его параметры. Для изменения доступны следующие параметры задания: WHAT, NEXT_DATE, INTERVAL и INSTANCE. Их можно менять все одновременно или по отдельности. К примеру, следующая процедура пакета меняет все три параметра, при этом следует учитывать, что если какой либо из них равен NULL, то значение параметра не изменится.

DBMS_JOB.CHANGE ( JOB IN BINARY_INTEGER, WHAT IN VARCHAR2, NEXT_DATE IN DATE, INTERVAL IN VARCHAR2, INSTANCE IN BINARY_INTEGER DEFAULT NULL, FORCE IN BOOLEAN DEFAULT FALSE);

А вот уже эта процедура меняет значение только параметра WHAT:

DBMS_JOB.WHAT ( JOB IN BINARY_INTEGER, WHAT IN VARCHAR2);

Также с параметрами NEXT_DATE,INTERVAL,INSTANCE:

DBMS_JOB.NEXT_DATE ( JOB IN BINARY_INTEGER, NEXT_DATE IN DATE); DBMS_JOB.INTERVAL ( JOB IN BINARY_INTEGER, INTERVAL IN VARCHAR2); DBMS_JOB.INSTANCE ( JOB IN BINARY_INTEGER, INSTANCE IN BINARY_INTEGER, FORCE IN BOOLEAN DEFAULT FALSE);

В качестве примера, увеличим паузу, которое делает задание, созданное ранее, до 30 секунд и изменим, время повторного запуска задания на 3 часа 15 минут:

SQL> BEGIN 2> DBMS_JOB.CHANGE(24, 3> 'SYS.DBMS_LOCK.SLEEP(30);', 4> NULL, 'TRUNC(SYSDATE+1)+(3+(15/60))/24'); 5> COMMIT; 6> END;

На заметку:

Изменить параметры или совершать другие действия над заданием можно только его владельцу. В противном случае возникнет ошибка ORA-23421: job number 24 is not a job in the job queue.

Удаление задания

Если задание становиться ненужным, то его можно удалить. Сделать это можно следующей процедурой:

DBMS_JOB.REMOVE ( JOB IN BINARY_INTEGER );

Выключение задания

Бывают случаи, когда задание временно не должно выполняться. Для этого совсем необязательно его удалять. Достаточно его просто выключить. Выключение (включение) задания производится установкой специального флага состояния — BROKEN. Делается это с помощью следующей процедуры:

DBMS_JOB.BROKEN ( JOB IN BINARY_INTEGER, BROKEN IN BOOLEAN, NEXT_DATE IN DATE DEFAULT SYSDATE);

Если флаг BROKEN имеет значение истинно, то такое задание считается разрушенным и выполняться не будет. Параметр NEXT_DATE определяет здесь дату следующего выполнения задания и действует только при его включении.

На заметку:

В момент выключения задания параметр NEXT_DATE устанавливается в максимальное значение даты. Если не указать параметр NEXT_DATE в момент включения, то задание начнёт выполняться немедленно.

Для примера выключим задание:

SQL> BEGIN 2> DBMS_JOB.BROKEN(24, TRUE); 3> END;

Вынужденное выполнение задания

Если необходимо запустить задание в текущий момент времени, то сделать это можно с помощью следующей процедуры пакета:

DBMS_JOB.RUN ( JOB IN BINARY_INTEGER, FORCE IN BOOLEAN DEFAULT FALSE);

Если параметр FORCE имеет значение ложно, то задание может быть выполнено в приоритетном режиме только в указанном экземпляре, иначе ?????.

На заметку:

Задание выполняется в текущем сеансе, при этом повторно инициализируются пакеты текущего сеанса, и происходит неявная фиксация транзакции.

Экспорт задания

Если требуется перенести задание в другую базу данных или пересоздать задание, то это можно легко сделать с помощью следующей процедуры пакета:

DBMS_JOB.USER_EXPORT ( job IN BINARY_INTEGER, mycall IN OUT VARCHAR2);

Переменная mycall будет при этом содержать текст команды, с помощью которой можно заново создать задание.

Контроль задания

Как было указано выше, координатор заданий обращается в своей работе к системной таблице SYS.JOB$, хранящей описания всех заданий. На эту таблицу существуют три представления: DBA_JOBS, ALL_JOBS и USER_JOBS. Они наиболее часто используются для контроля над заданиями. Рассмотрим их некоторые столбцы:

  • JOB, NEXT_DATE, INTERVAL, WHAT, INSTANCE — эти столбцы знакомы нам по процедуре SUBMIT.
  • LOG_USER — пользователь под которым была создано задание. Фактически это и есть владелец задания.
  • PRIV_USER — пользователь привилегии которого используются для выполнения задания.
  • SCHEMA_USER — схема по умолчанию для разбора задания.
  • LAST_DATE (LAST_SEC) — дата (время) последнего успешного выполнения задания.
  • THIS_DATE (THIS_SEC) — дата (время) начала выполнения задания.
  • TOTAL_TIME — общее время выполнения задания в секундах. Содержит суммарное время длительности всех выполнений задания.
  • BROKEN — этот столбец показывает состояние флага разрушенного задания. Если значение равно Y задание выполняться не будет.
  • FAILURES — количество неудачных попыток выполнить задание. Максимальное значение может достигать 16.
  • NLS_ENV — NLS параметры сеанса. Соответствуют параметрам сеанса, в котором задание создавалось.

Кроме вышеперечисленных представлений существует и ещё одно — DBA_JOBS_RUNNING. Оно показывает задания, которые выполняются в текущий момент времени. С его помощью можно легко определить SID сеанса выполняемого задания.

Блокировки

Если подробнее разобрать представление DBA_JOBS_RUNNING, то можно увидеть что в его основе лежит соединение таблицы SYS.JOB$ и представления V$LOCK. Кажется, какая тут есть связь? Оказывается, есть и самая прямая.

Для того чтобы гарантировать, что данное задание выполняется одновременно только в одном сеансе, Oracle выставляет блокировку JQ.

Это можно хорошо видеть, сделав запрос к представлению V$LOCK во время выполнения задания:

SQL> SELECT * FROM v$lock; ADDR KADDR SID TYPE ID1 ID2 LMODE REQUEST CTIME BLOCK ——— ——— — —- — — —— ——- —— —— 67252738 67252748 12 JQ 0 24 6 0 1 0

При этом столбец ID2 будет указывать на идентификатор выполняемого задания.

Ошибки

Когда при выполнении задания происходит ошибка, в журнал уведомлений базы данных alert.log записывается сообщение об ошибке. Оно имеет примерно следующий вид:

Wed Jan 11 21:06:12 2006 Errors in file D:oracleadminALFA9udumpORA00952.TRC: ORA-12012: error on auto execute of job 24 ORA-06550: line 1, column 96: PLS-00201: identifier 'SYS.DBMS_LOCK' must be declared ORA-06550: line 1, column 96: PL/SQL: Statement ignored

Первая строка указывает дату и время ошибки. Вторая свидетельствует о том, что сообщение, об ошибке будет дополнительно сброшено в трассировочный файл ORA00952.TRC. Третья строка всегда представляет собой стандартное сообщение ошибки ORA-12012 с указанием в конце идентификатора задания. Остальные строки — это сообщения возникшего исключения.

Именно они и позволяют определить причину сбоя задания. Во всяком случае, Oracle попытается снова выполнить задание через одну минуту, затем в случае неудачи через две минуты и так далее, каждый раз удваивая интервал. Как только число таких попыток станет равным 16, выставляется флаг разрушенного задания, и оно в дальнейшем не выполняется.

Прерывание задания

Если необходимо прервать выполняющееся задание, то вначале надо его выключить. Затем определить sid и serial# сеанса с помощью следующего запроса:

SQL> SELECT sid,serial# 2> FROM v$session 3> WHERE sid = (SELECT sid FROM dba_jobs_running WHERE job = 24) SID SERIAL# — ——- 11 50

И только затем уничтожить сеанс командой ALTER SYSTEM KILL SESSION. Если задание предварительно не выключить, то оно снова запуститься на выполнение через минуту после уничтожения сеанса.

Если попытаться продолжать уничтожать сеансы, то Oracle будет снова запускать задание, каждый раз удваивая интервал.

При этом столбец FAILURES в представлении DBA_JOBS остаётся нулевым, и вы не уведите в журнале уведомлений базы данных alert.log сообщений, что задание было прервано.

You have no rights to post comments

Источник: https://zhidba.ru/index.php/stati/oracle/68-oracle9i

Ссылка на основную публикацию