Mission
The mission of the SBC-Group headed by eva Kühn is to contribute to an easy-to-use middleware technology that:
- simplifies the development of parallel, distributed, collaborative applications
- offers a more natural paradigm of communication/collaboration
- enables new applications and services
- integrates well with today's standards and architectural styles like SOA (service oriented architectures)
- is an open specification to which the community can contribute
- is supported through an open source reference implementation
- incorporates state-of-the-art technology concepts like peer-to-peer computing
- can be used by industry for commercial applications
- can be used across different platforms
- supports intra- as well as inter-enterprise collaboration
- integrates features of other known research work, and specifications (like Java Spaces) for space based computing
- shall contribute to an open standards definition
XVSM (eXtensible Virtual Shared Memory)
The highly collaborative demands of forthcoming software applications in the Internet require communication possibilities that go beyond message sending and stateless service invocation.
A virtual shared memory provides a shared data space for the communication and collaboration of several autonomous software components called peers. Peers can write their requests (command data) into this memory space, as well as user or payload data that are required to collaborate (shared documents, coordination data etc.). The concept of a virtual shared memory is well known from parallel computing and acknowledged to offer a good abstraction for software developers; it is here adapted for distributed computing and the Internet in particular.
The programming and architecture style facilitated this way is called space based computing or space based collaboration. The difference to current middleware concepts is:
Today
the communication between instance X and instance Y is carried out by explicitly executing commands (requests) at other sites. Technically this means (*) message sending between single instances or remotely demanding a method call, (*) many different architectures and deployment issues for intra, extra- and Internet scenarios, and (*) limited scalability.
In contrast
the virtual shared memory approach enables coordinated, autonomous workers to interact in a shared virtual data space. Technically this means that all working peers have access to shared (distributed) data in a well structured, secure, virtual space. The same architecture principles can be applied for Intra-, Extra- and Internet scenarios. Such peer-to-peer architectures have the potential to scale well.
The extensible virtual shared memory technology (XVSM) developed by the Space Based Computing Group of the Institute of Computer Languages at the Vienna University of Technology goes even one step further and offers: A programmable virtual shared memory the functionality of which can be extended very easily by software developers through the usage of aspects. You cannot assume that one middleware producer is able provide all needed functionalities and you probably won't like to be restricted to using the functionality provided by one vendor. Even worse, if you have to use a middleware which is overloaded with functionality that you do not really need. With XVSM you can tailor and configure the really needed functionality by adding pluggable components (yellow layer in the figure below)
XVSM Architecture
XVSM can be used to realize:
The classic message-oriented style (an JMS API based on XVSM is currently under development).
A space-based style comparable tuple spaces, JavaSpaces (that implement the tuple space coordination model in Java) and any other flavours of spaces. In contrast to JavaSpaces which provide associative template matching as the only means to access data in the shared spaces, XVSM offers much more coordination possibilities, it does not require Jini underneath, it offers much better structuring possibilities of spaces and the application programming interface is not restricted to Java but is language and platform neutral. So you can use a JavaSpaces alike API on top of XVSM or you can integrate the XVSM into any other programming language and platform like .NET, C/C++, or even scripting languages like Phyton etc. Thus you can create higher-level APIs that implement shared, distributed, transactional collections. XVSM's vast possibilities concerning coordination, centered on the notion of extensible shared containers, make this very easily possible.
A mix of both styles allowing a smooth migration from today's architectural possibilities towards coordination and ad-hoc collaboration across the Internet. You can for example implement a FIFO space container that can be considered an asynchronous message queue that at the same time provides access to the data in the queue via keys or template matching of the content etc.
The basic style is to write data to a shared container and to read or take (consuming read) these data from this container according to the desired coordination principles like FIFO, FILO, key, vector, least recently used etc. The data in the container are shared and can be accessed by many parallel threads and/or distributed peers concurrently. The XVSM allows for any configuration where these data (represented as colored circles in the below figure that shows XVSM configuration possibilities: e.g. Site C is a mobile device; Site D implements a classic central server; site A and B are symmetric peer sites) are physically located: at any one of the peer sites, at many peer sites or even replicated to many sites in the network:
Application Scenarios
Typical application scenarios that can profit from XVSM are characterized by the following interaction patterns and demands:
- Data distribution and acquisition: publish/subscribe, push/pull, produce/consumer, monitoring, data communication in unreliable networks (satellite), logistics, backup support, data replication, conflict resolution, .
- Collaboration (cooperation, competition, negotiation): collaborative whiteboard, ad-hoc workflow, autonomic computing, continuous collaboration, self-organization and self-healing, load-balancing, distributed data cache, market-place, advanced message exchange patterns, mobile devices, ...
Some of our selected success stories and real-life application scenarios with space-based technologies include:
- Near-time data distribution
- across unreliable communication links like satellites
- Database replication
- reliable publication of heterogeneous data across the Internet between enterprises in near-time
- Information sharing networks
- for mission critical applications
- military
- Ad-hoc semantic data sharing
- health care (European patient summary)
- collaborative, advanced enterprise services (marketplace for digital content)
- Near-time distribution of work
- mobile employees in an insurance company using mobile devices
FAQ
Two most frequently asked questions are:
- Is XVSM a message queueing or publish/subscribe system?
- Common features
- (topic) queues can be seen as a specialization of spaces
- spaces can implement the behavior of queues
- but no vice versa
- (topic) queues can be seen as a specialization of spaces
- Differences
- in queues the data flow is directed between end points
- XVSM represents a shared state space
- coordination data structures offer arbitraty access
- represent the entire state of a business process
- offer "read many" versus "read once"
- Common features
- Is XVSM a database system?
- Common features
- structured data
- transaction concept
- Differences
- databases administrate (long lived) business data
- only one data structure: tables
- XVSM coordinates participaing processes
- abstraction for coordination (no "impedance mismatch")
- diversity of coordination data strauctures
- distributed coordination data structures
- databases administrate (long lived) business data
- Common features
XVSM resources
- Open source implementation MozartSpaces
- Space Based Computing Group at TU-Vienna: general, research publications, students' projects, funded research projects and awards
- Blogs and articels:
- Is there life beyond WCF? - or: Communication always is about shared data structures
- Coordination structures beat RPC - or: How to keep your mental health while working on distributed software
- Form should follow function - or: Why RPC really is bad for your mental health
- SROC: Serverless Real-time Online Collaboration (in German)
- Was kommt nach WCF? Gedanken über die Grenzen der Nachrichtenorientierung (in German)
- Space Based Collaboration - Jetzt mit mehr Öffentlichkeit (in German)
- 20. Microsoft Architect Forum - Reflektionen und Downloads (in German)
- Press article (in German)
Space Based Computing resources in general
- Virtual and Distributed Shared Memory (VSM/DSM) resources
- Linda tuple spaces
- Wikipedia: "Linda", "Linda coordination language"
- Linda Tuple Space Bibliography
- Scientific Computing Associates
- IBM TSpaces
- Microsoft Research on Linda Coordination Languages
- Technology Reports by Coverpages.org (hoasted by OASIS) on Tuple Spaces and XML Spaces
- XMLSpaces.net
- JavaSpaces (TM by Sun microsystems)
- JavaSpaces(TM) Service Specification Version 1.2.1, April 2002
- JavaSpaces: Principles, Patterns and Practices (Jini Technology)
- Wikipedia: "JavaSpaces", "JavaSpaces Specification"
- JavaSpaces and Jini implementations: the SUN reference implementation Outrigger, GigaSpaces, and the open source implementation Blitz
- Space-Based Architecture (SBA) Knowledge Center at TheServerSide.com
- Our recent and current research works on semantic spaces
- Triple Space Computing research project with Austrian partners from academia and industry funded by the Austrian Federal Ministry for Transport
- Triple Space Communication research project with international partners from academia and industry, funded by the European Commission
- The forthcoming Space Based Computing Initiative
XVSM Management Boards
- Technical Board: eva Kühn (chair), Geri Joskowicz, Markus Karolus, Richard Mordinyi, Michael Pröstler, Johannes Riemer, Thomas Scheller, Christian Schreiber, Ralf Westphal.
- Advisory Board: Martin Murth, Fabian Schmied.
- Quality Management Board: Alexander Schatten (chair), Stefan Biffl.
XVSM is a core technology in the recently established research area "Complex Systems" of the Faculty of Informatics at the TU Wien. Further Contributors: See Master and Praktikum students' projects.
SBC-GRID Initiative
The SBC-GRID Initivative TU-Vienna was founded in early 2004 by eva Kühn and some of her students. The goal of the SBC-GRID Initiative is to promote self-organizing and self-managing software infra-structure for distributed systems, using space based computing technologies. A network (GRID) was defined by the initiative that describes the relationship between all students' contributions and download material of the last decade related to space based computing. Each student can thus better profit from previous work and can better build on the work carried out by other colleagues so that larger projects become possible. A main objective of this initiative is to support and improve the communication between all contributors.
Martin Beinhart, Klemens Kraus, Marcus Mor, Richard Mordinyi, Martin Murth, Martin Rohner, Fabian Schmied, and Christian Schusterreiter, contributed to the launch of the SBC-GRID Initivative, by classifying SBC related students' works according to the 4 layers and by helping to identify new research topics.
SBC Software Architecture Layers
SBC based architectures are typically layered as follows:
- Applications Layer: applications that make use of the SBC infrastructure layers, implementing autonomously cooperating agents.
- Patterns Layer: infra-structure layer that implements re-usable software coordination design patterns.
- Service Layer: infra-structure layer that contributes to the self-description and self-organization of the software architecture, using semantic description languages and ontologies, and semantics based modeling.
- Kernel Layer: middleware layer that is based on the space based computing paradigm, like e.g. XVSM (eXtensible Virtual Shared Memory, a next generation and open architecture definition for space based computing, used in and supported by several funded research and industry projects), Java Spaces (a Java based implementation of the Linda tuple space model by SUN), or Corso (Coordinated Shared Object Spaces, a former SBC platform investigated by the SBC-Group).
Partnership
If you are interested in
- contributing to the XVSM specification as well as the open source implementation,
- a Praktikum, Master Thesis, Dissertation, research/industry project, or any other form of cooperation,
- using or contributing to/supporting of our open source implementation of an XVSM space,
- a research position at our department,
- further material (source code, documentation, publications etc.)
please send email to eva.kuehn@tuwien.ac.at.
Contact us
We are happy about any feedback we can get to improve the XVSM specification as well as the open source implementation further on. If you would like to contribute in any form please contact us.




