Mission
The mission of the SBC Research Group headed by eva Kühn is to investigate and develop innovative middleware technologies and provide them as open source.
The advantages of our middleware is that it:
- 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
- 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)
- (in German)
- (in German)
- 20. Microsoft Architect Forum - Reflektionen und Downloads (in German)
- Press article (in German)
XVSM Management Boards
- Technical Board: eva Kühn (Chair), Stefan Craß.
- Advisory Board: Geri Joskowicz (Chair).
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.