Title: Introduction of Pattern Oriented Software Concepts in Ground Stations
1- Introduction of Pattern Oriented Software
Concepts in Ground Stations
2Overview
- Motivation
- What are Design Patterns and Real Time Middleware
?
- ACE
- TAO
- Design Patterns
- Example The DLR GSOC Project
3Motivation I
- Avoid to re-invent the wheel
- Problem abstraction
- Avoid making beginners faults
- Software development in a distributed and
heterogeneous environment
- Cost effectiveness
- Time constraints
4Motivation II
- Developers of distributed applications have to
cope with inherent and accidental complexities
- Inherent complexity
- Eliminating race conditions"
- Deadlock avoidance
- Fault tolerance and high availability
- Load balancing
- Accidental complexity
- Lack of portable, reentrant, typesafe and
extensible system call interfaces and component
libraries
- Inadequate debugging support
- reinvention of core concepts and components
5 the result is
Middleware
Patterns
ACE
OO Design
TAO
OO Develop.
6Bringing the pieces together
- Object oriented design allows for abstraction
- RT CORBA like ACE / TAO provides the basis for
pattern programming
- Patterns are Puzzle pieces which we have to put
together
7Middleware Concepts
Satisfy specific domain requirements like Process
Automation, E-Commerce Telecommunications,
Define domain-independent services (e.g. Event
Notification, Security, )
Automate common network tasks, (e.g. Connection
and Memory Management, Synchronisation,
Multithreading, )
Encapsulate OS concurrency and IPC mechanisms
8Overview of the ACE Framework
- Features
- Open-source
- 200,000 lines of C
- 30 person-years of effort
- Ported to Win32, UNIX, RTOSs
- e.g., VxWorks, pSoS, LynxOS, Chorus, QNX
9Real-time CORBA TAO
- Features
- Open-source
- 500 classes 500,000 lines of C
- ACE/patterns-based
- 30 person-years of effort
- Ported to UNIX, Win32, MVS, many RT embedded
OSs
- e.g., VxWorks, LynxOS, Chorus, QNX
Scheduling Service
Standard Synchronizers
Thread Pools
Protocol Properties
Explicit Binding
Portable Priorities
10Benefits and Liabilities of Real Time CORBA
Middleware
- Cons
- Restricted efficiency due to indirection
- Multiple (distributed) points of failures
- Testing and debugging is usually more difficult
- Pros
- Patterns hide implementation and communication
- OS details are hidden as well
- Interoperability
- Reusability
- Location transparency
- Dynamic reconfiguration
11Advantages of Real-Time CORBA Systems like ACE/TAO
- Software
- is approved
- supports timing sensitive applications
- hides the platform / OS dependent
characteristics
- offers an independent abstraction layer
- used in commercial application for several years
(e.g. military strike plane)
12A Definition of Patterns
- "Each pattern describes a problem which occurs
over and over again in our environment, and then
describes the core of the solution to that
problem, in such a way that you can use this
solution a million times over, without ever doing
it the same way twice - Christopher Alexander (1977)
13What Are Design Patterns ?
- From Douglas C. Schmidt POSA II
- Present solutions to common software problems
arising within a certain context
- Help resolve key design forces
- Capture recurring structures dynamics among
software participants to facilitate reuse of
successful designs
- Generally codify expert knowledge best
practices
14Description of Patterns
- A pattern has four essential elements
- Pattern Name - handle
- is a handle which is used to briefly describe a
design problem, its solutions, and consequences
- Problem Description - when to apply
- describes when to apply the pattern
- Solution general arrangement
- describes the elements that make up the design,
their relationships, responsibilities, and
collaborations
- Consequences - tradeoffs
- are the results and trade-offs of applying the
pattern
15Overview of TAO Patterns
16Current Situation at DLR Weilheim I
- Hardware
- Old Hardware from Digital Equipment
- After Transitions Digital - Compaq HP,future
unknown
- Support, maintenance
- HW upgrades
- Software
- VMS
- Fortran Code
17GSOC Requirements
- Use of commercial of the shelf software
components
- Independence of system platforms (e.G processor
type, operating system)
- Support of CASE tools
- Allow for distributing the software application
- Scalability of the performance
- Allow for code reuse
- Provide application robustness
18Current Situation at DLR Weilheim II
19Publisher/Subscriber Pattern
- Pattern Name Publisher/Subscriber
- Problem DescriptionInformation changes in one
place, but (potentially) many other components
depend on this data.
- Solution A one-way propagation of changes is
enabled. One component takes the role of the
publisher and all components depending on the
information are the subscribers. In case of a
change, the publisher sends a notification over
an Event Channel to the subscriber(s). - Consequences Abstract coupling between
publisher and subscriber Support for
broadcast/multicast communication Risk for
unexpected updates
20Decoupling Suppliers Consumers
21First Migration Step for DLR Weilheim
Future Migration Step for DLR Weilheim
22Performance tests
- To be completedShow some estimates related to
performance of RT CORBA Event Channels
- Currently we are performing test and collect
information. Unfortunately we have not finished
this task completely yet
23Related Documentation and Web Sites
- Books
- POSA I Pattern Oriented Software Architecture
A System of Patterns, F. Buschman et al, 1996,
ISBN 0471958697
- POSA II Pattern Oriented Software Architecture
Vol.2 Patterns for Concurrent and Networked
Objects, 200, Douglas C. Schmidt et al, ISBN
0471606952 - Design Patterns Elements of Reusable
Object-Oriented Software, E. Gamma et al, 1995,
ISBN 0201633612
- C Network Programming Mastering Complexity
with ACE and Patterns, 2002, D. C. Schmidt, S.
D. Houston, ISBN 0201604647
- URLs
- Pattern Homepage http//hillside.net/patterns/
- Patterns in a Nutshell http//www.enteract.com/
bradapp/docs/patterns-nutshell.html
- D. Schmidts Homepage http//www.cs.wustl.edu/s
chmidt/
- Riveracehttp//www.riverace.com
24thanks for listening
- Contact
- CAM - Computer Anwendung für Management
- Rolf Kozlowski
- Rudolf-Diesel-Str. 7a
- 82205 Gilching
- Tel. 49 (0) 8105 3723-0
- Fax. 49 (0) 8105 3723-11
- Alt. Email Rolf.Kozlowski_at_ieee.org