RT Journal Article
JF IEEE Software
YR 2008
VO 24
IS 5
SP 86
TI Open Source Software: All You Do Is Put It Together
A1 Zeljko Obrenovic,
A1 Dragan Gasevic,
K1 software prototyping
K1 application program interfaces
K1 middleware
K1 object-oriented programming
K1 public domain software
K1 open source software
K1 data structures
K1 shared data repository
K1 loosely coupled service integration
K1 publish-subscribe infrastructure
K1 component integration
K1 middleware platform
K1 OSS components
K1 rapid prototyping
K1 adaptable multiinterface communicator infrastructure
K1 Open source software
K1 Middleware
K1 Computer vision
K1 Speech synthesis
K1 Application software
K1 Software prototyping
K1 Collaboration
K1 Synthesizers
K1 Resource description framework
K1 Mesons
K1 system integration and implementation
K1 rapid prototyping
K1 reusable software
K1 componentware
AB As of 1 August 2007, SourceForge.net hosted more than 150,000 registered open source software projects, and many more projects are available on other sites. With so many OSS choices, it might seem that building a new application is only a matter of finding the appropriate projects and putting them together. We've developed the adaptable multi-interface communicator infrastructure to support rapid prototyping from OSS components. AMICO is based on existing middleware platforms for component integration, but it focuses on pragmatic aspects of OSS integration often absent from existing integration platforms. AMICO satisfies requirements based on our experiences in solving practical problems in several projects. AMICO OSS is based on a publish-subscribe infrastructure for integrating loosely coupled services. In such infrastructures, a publisher updates a shared data repository. The loosely coupled approach can be highly adaptable when using simple data structures, because new applications can use existing data in the model and add their own without breaking the infrastructure. Components communicate by exchanging events through a shared data repository consisting of named slots called variables. Components can update the variables and register for notifications about variable changes. Modules can also derive new variables by processing existing ones.
PB IEEE Computer Society, [URL:http://www.computer.org]
SN 0740-7459
LA English
DO 10.1109/MS.2007.141
LK http://doi.ieeecomputersociety.org/10.1109/MS.2007.141