14 research outputs found
Self-managed mediated information flow
There is provided a method for mediating the flow of messages in a computer network having a mediation architecture that includes a plurality of logical nodes arranged in a logical mediation cycle. The method provides algorithms for: handing mediation tasks over between mediator nodes; reconfiguring the logical topology of the mediation architecture in response to a change request while maintaining system invariants; and refining the structure of the mediation architecture by adding whole subnetworks in place of single nodes. The method also addresses failure detection and recovery
Orthogonal persistence revisited
The social and economic importance of large bodies of programs and data that are potentially long-lived has attracted much attention in the commercial and research communities. Here we concentrate on a set of methodologies and technologies called persistent programming. In particular we review programming language support for the concept of orthogonal persistence, a technique for the uniform treatment of objects irrespective of their types or longevity. While research in persistent programming has become unfashionable, we show how the concept is beginning to appear as a major component of modern systems. We relate these attempts to the original principles of orthogonal persistence and give a few hints about how the concept may be utilised in the future.Postprin
An Ad-Hoc Approach to the Implementation of Polymorphism
types have existential type". 12th ACM Symposium on Principles of Programming Languages, New Orleans, (January 1985), 37-51. [SFS90] Stemple, D., Fegaras, L., Sheard, T. & Socorro, A. "Exceeding the Limits of Polymorphism in Database Programming Languages". Advances in Database Technology - EDBT90, Venice. In Lecture Notes in Computer Science. 416. Springer-Verlag (1990), pp. 269-285. [Str67] Strachey, C. "Fundamental concepts in programming languages". Oxford University, Oxford (1967). [Tur79] Turner, D.A. SASL language manual. University of St.Andrews CS/79/3 (1979). [Tur87] Turner, D.A. Miranda System Manual. Research Software Ltd. Canterbury, England. (1987). [VG85] van Vliet, J.C. & Gladney, H.M. "An evaluation of tagging". Software, Practice & Experience, 15, 9 (1985), 823-827. 28 [DD79] Demers, A. & Donahue, J. "Revised report on Russell". Technical report TR79389, (1979), Cornell University. [DM82] Damas. L & Milner, R. "Principal Type Schemes for Functional Programs". 9th AC..
The Napier Type System
Persistent programming is concerned with the construction of large and long lived systems of data. In designing and building persistent object systems, we are attempting to regularise the activities that are performed on data by programming languages, operating systems, database management systems and file systems. We have identified the following areas of research which we are investigating in the context of persistent systems. They are: controlling complexity, protection of data, orthogonal persistence, controlled system evolution and concurrent computation. In this paper, we describe the data modelling facilities of the Napier type system. We also demonstrate the flexible and incremental nature of the type checking mechanism that is required for persistent programming. The type system is central to the nature of the Napier language and we will demonstrate how it has been designed to solve problems in the five areas identified above
Concurrent Shadow Paging in the Flask Architecture
The differing requirements for concurrency models in programming languages and databases are widely diverse and often seemingly incompatible. The rigid provision of a particular concurrency control scheme in a persistent object system limits its usefulness to a particular class of application, in contrast to the generality intended by the provision of persistence. One solution is to provide a flexible system in which concurrency control schemes may be specified according to the particular task in hand, allowing the same data to be used in conjunction with different concurrency control schemes according to the needs of the application. A major difficulty in the engineering of such a system lies in the building of generic mechanisms to provide the facilities of data visibility restriction, stability, and atomicity, independently of the combination of these employed by a particular concurrency control scheme. Flask is a architecture which is designed to achieve this goal by defining a lay..