Results 1 - 10
of
11
Specification Matching of Software Components
- ACM Transactions on Software Engineering and Methodology
, 1996
"... Specification matching is a way to compare two software components based on descriptions of the components' behaviors. In the context of software reuse and library retrieval, it can help determine whether one component can be substituted for another or how one can be modified to fit the requireme ..."
Abstract
-
Cited by 252 (4 self)
- Add to MetaCart
Specification matching is a way to compare two software components based on descriptions of the components' behaviors. In the context of software reuse and library retrieval, it can help determine whether one component can be substituted for another or how one can be modified to fit the requirements of the other. In the context of object-oriented programming, it can help determine when one type is a behavioral subtype of another. We use formal specifications to describe the behavior of software components, and hence, to determine whether two components match. We give precise definitions of not just exact match, but more relevantly, various flavors of relaxed match. These definitions capture the notions of generalization, specialization, and substitutability of software components. Since our formal specifications are pre- and post-conditions written as predicates in firstorder logic, we rely on theorem proving to determine match and mismatch. We give examples from our impleme...
Dynamic Service Matchmaking Among Agents in Open Information Environments
- SIGMOD Record
, 1999
"... The amount of services and deployed software agents in the most famous offspring of the Internet, the World Wide Web, is exponentially increasing. In addition, the Internet is an open environment, where information sources, communication links and agents themselves may appear and disappear unpredict ..."
Abstract
-
Cited by 127 (17 self)
- Add to MetaCart
The amount of services and deployed software agents in the most famous offspring of the Internet, the World Wide Web, is exponentially increasing. In addition, the Internet is an open environment, where information sources, communication links and agents themselves may appear and disappear unpredictably.Thus, an effective, automated search and selection of relevant services or agents is essential for human users and agents as well. We distinguish three general agent categories in the Cyberspace, serviceproviders, servicerequester, and middle agents. Service providers provide some type of service, such as finding information, or performing some particular domain specific problem solving. Requester agents need provider agents to perform some service for them. Agents that help locate others are called middle agents [2]. Matchmaking is the process of finding an appropriate provider for a requester through a middl...
LARKS: Dynamic Matchmaking Among Heterogeneous Software Agents in Cyberspace
- in Cyberspace. Autonomous Agents and Multi-Agent Systems
, 2002
"... Introduction Theaeb{@ of servicesar deployed softwad aftwa in the mostfatb@ offspring of the Internet, the World Wide Web, isexponentiakp increatia Inabp{q}}b the Internet is a open environment, where infor maorb sources,communica}}{ links an anksb themselvesma aems a disaselv unpredicta}{} Thus,a ..."
Abstract
-
Cited by 114 (10 self)
- Add to MetaCart
Introduction Theaeb{@ of servicesar deployed softwad aftwa in the mostfatb@ offspring of the Internet, the World Wide Web, isexponentiakp increatia Inabp{q}}b the Internet is a open environment, where infor maorb sources,communica}}{ links an anksb themselvesma aems a disaselv unpredicta}{} Thus,a effective, affectiv seaec aa selection ofrelevaq services orab@pk isessentia forhuma usersae aersba well. We distinguish threegenera aner cara{p}fi in theCyberspaC{ service providers, service requester,a{ middle agents. Service providers provide some type of service, sucha finding informaorb} or performing somepab@}@v@b doma@ specific problem solving. Requesterauest need provideraovid to perform some service for them. Agentstha helploca{ othersah caers middle addle [6]. Matchmaking is the # Thisreseapv ha been sponsored inpa} by Office ofNa@{ Resea@} gra N-00014-96-16-1-1222, aby DARPAgraD F-30602-98-2-0138. 174 sycara et al. process of findinga aingb{fi@{v provider fora requester througha
Matchmaking among Heterogeneous Agents on the Internet
- IN AAAI SPRING SYMPOSIUM ON INTELLIGENT AGENTS IN CYBERSPACE
, 1999
"... The Internet is not only providing data for users to browse, but also databases to query, and software agents to run. Due to the exponential increase of deployed agents on the Internet, automating the search and selection of relevant agents is essential for both users and collaboration among di#eren ..."
Abstract
-
Cited by 45 (3 self)
- Add to MetaCart
The Internet is not only providing data for users to browse, but also databases to query, and software agents to run. Due to the exponential increase of deployed agents on the Internet, automating the search and selection of relevant agents is essential for both users and collaboration among di#erent software agents. This paper first describes the agent capability description language Larks. Then we will discuss the matchmaking process using Larks and give a complete working scenario. The paper concludes with comparing our language and the matchmaking process with related works. Wehave implemented Larks and the associated powerful matchmaking process, and are currently incorporating it within our RETSINA multi-agent infrastructure framework.
Adding roles to CORBA objects
- IEEE Transactions on Software Engineering
"... Abstract—Traditional IDLs were defined for describing the services that objects offer, but not those services they require from other objects, nor the relative order in which they expect their methods to be called. Some of the existing proposals try to add protocol information to object interfaces, ..."
Abstract
-
Cited by 34 (10 self)
- Add to MetaCart
Abstract—Traditional IDLs were defined for describing the services that objects offer, but not those services they require from other objects, nor the relative order in which they expect their methods to be called. Some of the existing proposals try to add protocol information to object interfaces, but most of them fail to do so in a modular way. In this paper we propose an extension of the CORBA IDL that uses a sugared subset of the polyadic-calculus for describing object service protocols, based on the concept of roles. Roles allow the modular specification of the observable behavior of CORBA objects, reducing the complexity of the compatibility tests. Our main aim is the automated checking of protocol interoperability between CORBA objects in open component-based environments, using similar techniques to those used in software architecture description and analysis. In addition, our proposal permits the study of substitutability between CORBA objects, as well as the realization of dynamic compatibility tests during their runtime execution. Index Terms—Interface definition languages, software components, component-based software development, protocols, compatibility and substitutability of components.
Component Interoperability
- ECOOP '99 Reader, number 1743 in LNCS
, 2000
"... Component-based software development is gaining recognition as the key technology for the construction of high-quality, evolvable, large software systems in timely and affordable manners. In this new setting, interoperability is one of the essential issues, since it enables the composition of reusab ..."
Abstract
-
Cited by 29 (4 self)
- Add to MetaCart
Component-based software development is gaining recognition as the key technology for the construction of high-quality, evolvable, large software systems in timely and affordable manners. In this new setting, interoperability is one of the essential issues, since it enables the composition of reusable heterogeneous components developed by different people, at different times, and possibly with different uses in mind. Currently most object and component platforms (such as CORBA, DCOM, or EJB) already provide the basic infrastructure for component interoperability at the lower levels, i.e., they sort out most of the "plumbing" issues. However, interoperability goes far beyond that; it also involves behavioral compatibility, protocol compliance, agreements on the business rules, etc. This chapter tries to go through the basic concepts related to component interoperability, with special emphasis in the syntactic, protocol and operational specifications of components. Our main goal is to point out the existing problems, survey the current solutions and how they address those problems, and to draw attention towards some of the still open issues and challenges in this interesting research area.
Interoperability among Heterogeneous Software Agents on the Internet
, 1998
"... Due to the exponential increase of offered services in the most famous offspring of the Internet... ..."
Abstract
-
Cited by 26 (9 self)
- Add to MetaCart
Due to the exponential increase of offered services in the most famous offspring of the Internet...
Selecting Software Components with Multiple Interfaces
- In Proceeding of the 28th EUROMICRO Conference { Component-Based Software Engineering
, 2002
"... Component-based software development is gaining recognition as the key technology for the construction of high-quality, evolvable, large software systems in timely and affordable manners. Component search and service matching have become two of the key issues involved in this process. However, curre ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
Component-based software development is gaining recognition as the key technology for the construction of high-quality, evolvable, large software systems in timely and affordable manners. Component search and service matching have become two of the key issues involved in this process. However, current proposals addressing these issues are based on the simplistic assumptions that components present only one interface with the services they offer. This work presents an extension of those approaches in which components may offer and require several interfaces, extending the traditional component "substitutability" operator. In addition, an algorithm for selecting COTS components with multiple interfaces from a repository in order to implement a given software architecture is presented.
Searching and Matching Software Components with Multiple Interfaces
- In Proc. of the TOOLS Europe’2000 Workshop on Component-Based Development
, 2000
"... Currently there is an increasing interest in the use of COTS components for building software applications. Component search and service matching are two of the issues involved in this process. Traditional proposals to deal with these problems are based on the simplistic assumption that components p ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Currently there is an increasing interest in the use of COTS components for building software applications. Component search and service matching are two of the issues involved in this process. Traditional proposals to deal with these problems are based on the simplistic assumption that components present only one interface with the services they o#er, and that matching is done on a one-to-one basis. This work presents an extension of those approaches in which components o#er several interfaces, and not only their supported services are contemplated, but also the external services they may require from other components to operate. In this context, some of the traditional component operators are extended # composition, substitutability, and equivalence# so they can deal with multiple interfaces. In addition, the problems arising in this new setting are discussed, and some of the possible solutions presented. 1 Introduction In the last decade Component-Based Software Engineer...
Kind Theory
, 2002
"... iii This thesis describes a theory for representing, manipulating, and reasoning about structured pieces of knowledge in open collaborative systems. The theory’s design is motivated by both its general model as well as its target user commu-nity. Its model is structured information, with emphasis on ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
iii This thesis describes a theory for representing, manipulating, and reasoning about structured pieces of knowledge in open collaborative systems. The theory’s design is motivated by both its general model as well as its target user commu-nity. Its model is structured information, with emphasis on classification, relative structure, equivalence, and interpretation. Its user community is meant to be non-mathematicians and non-computer scientists that might use the theory via computational tool support once inte-grated with modern design and development tools. This thesis discusses a new logic called kind theory that meets these challenges. The core of the work is based in logic, type theory, and universal algebras. The theory is shown to be efficiently implementable, and several parts of a full realization have already been constructed and are reviewed. Additionally, several software engineering concepts, tools, and technologies have been con-structed that take advantage of this theoretical framework. These constructs are discussed as well, from the perspectives of general software engineering and applied formal methods. Acknowledgements iv I am grateful to my initial primary adviser, Prof. K. Mani Chandy, for bringing me to Caltech and his willingness to let me explore many unfamiliar research fields of my own choosing. I am also appreciative of my second adviser, Prof. Jason Hickey, for his support, encouragement, feedback, and patience through the later years of my work. If Jason had not appeared at Caltech in Autumn of 1999, I may well have not finished my Ph.D. I am very much in debt to Joseph Goguen whose inspiring work started me on the path of using algebras and categories. José Meseguer and Francisco (Paco) Duran have been of tremendous help and inspiration in my use of Maude and rewriting logic.

