topical media & game development
pattern(s)
/ matrix
/ model(s)
/ resource(s)
Distributed Object Patterns
- Software Engineering: risk challenge
- CORBA - guidance (OO, C/S, IDL)
- Object-Oriented Architectures
See
CORBA Design Patterns

Corba Design Patterns
scale
- Objects/Classes
- MicroArchitectures
- Framework
(class hierarchies)
- Applications
(wrappers)
- System
(horizontal, vertical, metadata)
- Enterprise
reference models, infrastructure, policies)
- Intra/Internet
(standards)

Object-Oriented Architectures
- Application Design Patterns
- System Design Patterns
- Enterprise Design Patterns
- Global Design Patterns
CORBA IDL as a baseis for interface definitions


Template Design Pattern
- Pattern Name
- Most applicable scale
- Solution type
- Intent
- Diagram
- Referemces
- Applicability
- Benefits and consequences
- Variations
- Rescaling to other levels
- Related solutions
- Example
- Background
- Resources

Is there competition for patterns?
- standards -- too many, no guidelines, poorly supported
Criteria
- interoperability
- portablity

CORBA
- is a commercial standard from OMG,
whose mission it is to define interfaces
for interoperable software using
object-oriented technology
Object Management Architecture
- high level infra-structure for distributed computing
- reusable modular software
- distributed heterogeneous systems
Key reasons for CORBA in the future
- IDL -- universal notation for software interfaces
- ORB -- infra-structure simplifies distributed computing


Architectures and Boundaries
- surprisingly little detail is included in OOAD models
- interfaces are treated as coding details,
to be fleshed out at the programming level
- architecture -- abstraction, management of change, complexity
- interfaces -- language independent
- implementation -- software modules
software problems are due to poor definitions
and transfer of software boundaries



architecture = set of rules, guidelines,
interface conventions
The architect defines a robust set of abstractions that manage complexity, change
and other forces
- issues of software partitioning
logical separation
- flow of control
- flow of information
- timing and throughput
- interface layering
- hardware/software allocation
- error handling
frequently overlooked

In a distributed system, the lack of a single address space
and the need for independent reusable services are addressed by having
a service-based architecture

| Stable/Reusable Interfaces |
Changeable Specifications |
Data/Interface Partitioning |
IDL Interfaces |
Data & Meta Data |
Interface Specialization |
Horizontal Interfaces |
Vertical Interfaces |
... mandating a single type system for all applications is unrealistic ...

risk is the universal force
Design Pattern Language -- Primal Forces
- Functionality -- to meet end users requirements
- Performance -- computation/network bound
- complexity -- hotspots, redesign, abstraction
- Change -- adaptability ...
- IT Resources -- hardware / software
- Technology Transfer -- education has a price tag

Application Design Patterns
- maximizing parallelism
-- distributed callback, partial processing,
independent objects
- improving object implementations
-- dynamic attributes, instance reference, object wrapper, lock
- modifying client stubs and other tricks
-- library skeleton, fine-grained framework

System Design patterns -- horizontal, vertical, meta-data
- Principles of object-oriented architectures
---architecture mining
- fundamental structural patterns
-- repository architecture, gateway
- advanced system design
-- architecture enforcement, replication, agents
- Using OMG CORBA Services
-- naming, trader, notification
Enterprise Design Patterns -- organisational infra structure
Global Design Patterns -- open systems/Int(e)r(a)net

(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.