Object Transaction Service

Origem: Wikipédia, a enciclopédia livre.

Object Transaction Service (OTS) é uma especificação da OMG que define um conjunto de interfaces para implementação de um serviço transacional em uma aplicação orientada a objeto. O OTS permite que objetos implementados no padrão CORBA participem de transações.

Entidades[editar | editar código-fonte]

Uma aplicação que suporte o OTS deve ser composta pelas seguintes entidades:

  • transactional client (cliente transacional) — Um programa qualquer que pode invocar operações em vários objetos no escopo de uma única transação;
  • transactional object (objeto transacional) — Um objeto cujo comportamento é alterado quando chamado dentro de um escopo transacional;
  • recoverable object e resource object (objeto recuperável e objeto de recurso) — O objeto cujo estado é alterado em uma operação de commit ou rollback de uma transação é chamado de "objeto recuperável". Quando um objeto recuperável necessita participar de uma transação ele faz isso se registrando no serviço de transação como um "objeto de recurso".
  • transactional server (servidor transacional) — É um conjunto de objetos cujo comportamento é afetado por uma transação, mas que não possuem estados recuperáveis. Eles implementam alterações no estado através de outros objetos recuperáveis.
  • recoverable server (servidor recuperável) — É um conjunto de objetos sendo que pelo menos um deles é recuperável. Um servidor recuperável participa na transação registrando um ou mais objetos de recurso no serviço de transação.

Interfaces[editar | editar código-fonte]

As interfaces definidas na especificação do OTS são:

  • current (transação corrente) — Permite que o cliente gerencie a associação entre uma thread e uma transação. Ela também define as operações que permitem ao cliente controlar o estado da transação (commit, rollback e etc);
  • transaction factory (fábrica de transações) — Disponibiliza uma factory que permite ao cliente iniciar uma transação;
  • control interface (interface de controle) — Permite que um programa gerencie ou propague um contexto transacional;
  • terminator interface (interface de término) — Permite que um programa finalize uma transação;
  • coordinator interface (interface de coordenação) — Disponibiliza operações que são utilizadas pelos participantes de uma transação
  • recovery coordinator interface (interface do coordenação de recuperação) — Utilizada em situações de falha na transação para comunicar a um "coordenador" que operações de commit e rollback não foram realizadas em determinado recurso;
  • resource interface (interface de recurso) — Define as operações efetuadas pelo serviço de transação em determinado recurso.
  • synchronization interface (interface de sincronização) — Disponibiliza um protocolo que sincroniza transações globais entre vários recursos compatíveis com o padrão XA.
  • subtransaction aware resource interface (interface de recurso para "sub-transações") — É uma especialização da interface de recurso para objetos que suportam transações aninhadas.

Arquitetura[editar | editar código-fonte]

Uma transação é criada por qualquer programa através da interface transaction factory. No momento em que é criada uma transação, um objeto que implementa a interface control é retornado ao programa, através desta interface é possível acessar as interfaces terminator e coordinator. O programa que originou a transação utiliza o terminator para executar as operações de commit ou rollback em uma transação.

Ver também[editar | editar código-fonte]

Referências[editar | editar código-fonte]