Consistent access to replicated web service registries

Web Services is supposed to be the next biggest revolution in IT industry as it has created a platform-neutral environment for business processes to communicate. Because of the interoperability provided by Web Services, the number of companies using it is expected to grow exponentially. As such, the number of queries to name directory services for Web Services, Universal Description Discovery and Integration (UDDI) registries, is expected to be very high. To facilitate high availability, UDDI version 3 suggests replication of data in the registry. -- For quick response and scalability, a lazy replication scheme is appropriate for UDDI registries. Here, update transactions are executed at primary node(s) as primary transactions, committed, and then updates are transmitted to other nodes asynchronously, which are then executed at those nodes as refresh transactions. Then, due to the updates at different nodes being done at different times, a user may read a recent version of a data item at one node and, later, read an older version of the same or some other related data item at some other node. As a result, the user may obtain an inconsistent view of the registry. For a user accessing different nodes in operations of a session, a session guarantee mechanism is required to ensure a consistent view of the registry. -- In this work, we propose a transaction execution protocol that (i) uses a lazy replication scheme, (ii) ensures one copy serializability, and (iii) incorporates a fine grained session guarantee mechanism. Transactions are classified as update or read only transactions and also as local or global transactions. We extensively study these transaction types and design a protocol that exploits the compatibility among them to achieve high performance. The protocol is an extension of two phase locking protocol which has flexibility to execute a transaction pessimistically or optimistically. Message propagation mechanism is designed such that updates of conflicting transactions (only) are delivered causally. -- The protocol is designed first for a fully replicated system, and then extended to the partially replicated system. Lastly, we propose a deadlock detection and resolution mechanism.