Title: Four ways to Architect your Distributed Objects
1Four ways to Architect your Distributed Objects
- From Features to Architectural Styles
Bastiaan Schönhage Anton Eliens
ASZ Research Development
Vrije Universiteit Amsterdam
2Terminology
- Architectural Styles
- descriptions of component types and a pattern of
their runtime control and/or data transfer(Shaw
and Garlan) - Middleware
- the software layer between the distributed
application and the network (e.g. Corba, DCOM)
3Distributed software
- Middleware and OO Frameworks are intended to help
designers of distributed systems - Questions
- Which technology should we choose?
- What SA should we use?
- This talk provides some answers by
- 4 architectural styles (based on experience)
- guidelines for their usage
- discussing the link between SA and technology
4SA and technology
- Middleware as underwear ?
- Or
- Type of middleware influences the Software
Architecture of a distributed system
5Overview
- Introduction
- Features of Distributed Objects
- object properties
- connectors
- location issues
- Architectural Styles
- characteristics
- supporting technology
- Discussion
- Guidelines for usage of styles
6Distributed Object Features
- Object properties
- meta-information
- dynamically changeable
- Connectors
- method/event-based
- inter-operable
- Location issues
- downloadable
- mobile
- replication
7Classification of technology
8From Features to Styles
- Based on experience from Distributed
Visualization Architecture (DIVA) project - Key features
- connector type
- object location
- because these features characterize how objects
collaborate in a distributed environment
9I - Distributed ObjectArchitectural Style
Virtual remote procedure call
Object
Object
Proxy
Proxy
Internet
Proxies transferlocal method callover the
network
Objects are at a single, fixed location Connection
s via proxies and an ORB Example technologies
supporting this style include Corba and
Microsoft DCOM
10II - Dynamicallydownloaded classes
Static classes (code only)migrate from server to
client
Client
Server
Object
Class
Internet
Class
Class
Object
Client objects only use local procedure calls
Functionality (classes) is not fixed, but
transported to client machines (dynamically
downloadable) Example technologies Java
applets, JavaBeans, ActiveX
11III - Mobile objects
Agent moves to other machine taking functionality
and data along
Agent
Agent
Internet
Agent
Agents move to a single machine to communicate
locally
Mobile objects migrate from host to host taking
bothfunctionality and data while they
move Technology agent ORBs, e.g. Voyager, Mole
12IV - Event-space
Subscribers to the event-space receive all
published events
Object
Publish event
Object
Internet
Invoke event
Object
Event-based communication Very useful to
broadcast messages Technologies Corba
Event-service, Voyagers space
13Discussion
- Super middleware ?
- Is it useful to have a super middleware product
that covers all possible issues discussed here? - Does a best style exist?
- NO !!
- When to use?
- Rules of thumb (see next slide)
- Deployment perspective
- Keep consistent !
14Rules of thumb
- Distributed Objects
- dedicated hardware or legacy code (wrapping)
- Dynamically downloaded classes
- lots of users (e.g. java applets)
- Mobile objects
- lot of communication, small result (negotiation)
- Event-space
- single source of information (information-push)
15Conclusions
- Object features, object technology (middleware)
and software architectures are related - No best style exists, but depend on quality
requirements such as performance, maintainability
and scalability - Rules of thumb are a first direction into
choosing an appropriate style