Shared Prolog is a new concurrent logic language. A Shared Prolog system is composed of a set of parallel agents that are Prolog programs extended by a guard mechanism. The programmer controls the granularity of parallelism, coordinating communication and synchronization of the agents via a centralized data structure. The communication mechanism is inherited from the blackboard model of problem solving. Intuitively, the granularity of the logic processes to be elaborated in parallel is large, while the resources shared on the blackboard can be very fined grained. An operational semantics for Shared Prolog is given in terms of a distributed model. Through an abstract notion of computation, the kinds of parallelism supported by the language, as well as properties of infinite computations, such as local deadlocks, are studied. The expressiveness of the language is shown with respect to the specification of two classes of applications: metaprogramming and blackboard systems.
Software components can give rise to several kinds of architectural mismatches when assembled together in order to form a software system. A formal description of the architecture of the resulting component-based software system may help to detect such architectural mismatches and to single out the components that cause the mismatches. In this article, we concentrate on deadlock-related architectural mismatches arising from three different causes that we identify: incompatibility between two components due to a single interaction, incompatibility between two components due to the combination of several interactions, and lack of interoperability among a set of components forming a cyclic topology. We develop a process algebra-based architectural description language called PADL, which deals with all three causes through an architectural compatibility check and an architectural interoperability check relying on standard observational equivalences. The adequacy of the architectural compatibility check is assessed on a compressing proxy system, while the adequacy of the architectural interoperability check is assessed on a cruise control system. We then address the issue of scaling the architectural compatibility and interoperability checks to architectural styles through an extension of PADL. The formalization of an architectural style is complicated by the presence of two degrees of freedom within the set of instances of the style: variability of the internal behavior of the components and variability of the topology formed by the components. As a first step towards the solution of the problem, we propose an intermediate abstraction called architectural type, whose instances differ only for the internal behavior of their components. We define an efficient architectural conformity check based on a standard observational equivalence to verify whether an architecture is an instance of an architectural type. We show that all the architectures conforming to the same architectural type possess the same compatibility and interoperability properties.
1 May 1998 in IEEE Transactions on Software Engineering
The goal of Digital Transformation of the Public Sector is the achievement of a better quality of life for citizens, via a more responsive and transparent administration and governance. By now it is clear that technological innovation, both in terms of computer architectures and software systems, is a crucial component of it, yet not sufficient. Indeed, a cultural, organizational and legal shift in how public organizations operate and relate to the citizens is also required. Nevertheless, computer scientists can play a key role in such a transformation and, given its impact on Society, it is essential to achieve a broader level of awareness of it and involvement in it of those scientific and professional figures. To this end, a technical map specifically designed for computer scientists, but properly placed in the context of the cultural, organizational and legal changes mentioned above, would be highly beneficial. To date, such a map is missing, to the best of our knowledge. The main contribution of this Tutorial is to provide it, together with a guided tour describing which key technological aspects enable and drive such a transformation. More specifically, based on a careful analysis of the available scholarly literature, that does not seem to include any Computer Science textbook material, a model of such a transformation is proposed, together with carefully selected examples incarnating it to show its validity: the cities of Barcelona and Chicago. Finally, a look at the future of this area is also provided.