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 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 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 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 Java Transaction Service
Referências
Categoria:CORBA