• ↑↓ pour naviguer
  • pour ouvrir
  • pour sélectionner
  • ⌘ ⌥ ↵ pour ouvrir dans un panneau
  • esc pour rejeter
⌘ '
raccourcis clavier

See also: midterm

1

The Credit Swiss group Information Technology (IT) partners closely with the business to deliver innovative and cost-efficient results. In today’s competitive environment, IT drives performanceand revenue growth. By directly aligning Credit Swiss IT initiatives with the bank’s overall business objectives, Information Technology helps provide Credit Suisse with a distinct competitive advantage.Credit Swiss IT manages more than 1,000 services. All its services are made available for 66,400supported users in 550 locations using different software and hardware technologies. Obviously, CreditSwiss IT organize their services within an architectural style.

  1. What should be this suitable style that provide thin service interfaces and contracts, allows loose coupling, service abstraction and reusability, ease of service discovery, and data sharing (interop-erability)?
  2. An architecture that has the above strengths exhibits at the same time several weaknesses. Discuss two weaknesses related to this architectural style
  1. SOA or Broker
  2. Governance and Complexity Overhead

Interaction-Oriented Architecture

Hierarchy Architecture

Architecture TypeKey CharacteristicsBenefitsLimitationsUse Cases
Main/Subroutine- Main program controls sequence
- Hierarchical decomposition
- Focus on behavior/decision hiding
- In procedure orientation: shared data
- In OO: encapsulated data
- Easy decomposition
- Top-down refinement
- Usable in OO subsystems
- Vulnerable shared data
- Tight coupling
- Potential ripple effects
- Traditional software systems
- Systems with clear functional hierarchy
Master/Slaves- Master controls multiple slaves
- Slaves provide replicated services
- Master selects results by strategy
- Slaves use different algorithms
- Fault tolerance
- Improved reliability
- Parallel execution
- Communication overhead
- Complexity in coordination
- Mission-critical systems
- Performance-critical systems
- Systems requiring high accuracy
Layered- Higher/lower layer division
- Each layer has sole responsibility
- Up/low interfaces
- Higher layers: abstract services
- Lower layers: utility services
- Incremental development
- Enhanced independence
- Improved reusability
- Portability
- Component compatibility
- Lower runtime performance
- Data marshaling overhead
- Not suitable for all apps
- Complex error handling
- OS architecture
- Network protocols
- Enterprise applications
- Cross-platform systems
Virtual Machine- Built on existing system
- Separates language/hardware from execution
- Emulation software
- Reproduces external behavior
- Platform independence
- Simplified development
- Non-native simulation
- Slower execution
- Additional overhead
- Cross-platform applications
- Language interpreters
- Simulation environments
- Java VM, .NET CLR

Heterogeneous Architecture

Idea of SAAM:

  • define collection of scenarios that cover functional and non-functional requirements
  • evaluation on candidate architecture
  • perform analysis on interaction

Important

A design scenario represents an important usage of a system and reflects the viewpoints of stakeholders

ConceptDescription
DefinitionMultiple architecture styles used together in the same project to combine benefits and ensure quality
PurposeTo achieve optimal system design by selecting appropriate architectures for different parts of a system
Core ProcessClosely related to requirements analysis, considers system requirements, priorities, and constraints
Architecture Decision MethodologySystematic approach to select optimal architecture based on requirements, constraints, and quality attributes
Quality Attributes EvaluationQuantitative method using weighted scores for each quality attribute (e.g., performance 50%, security 10%)
Architecture Style Selection Factors- Project requirements
- Quality attributes
- Application domain
- Project constraints (budget, deadline)
SAAM MethodSoftware Architecture Analysis Method for evaluating candidate architectures using scenarios
SAAM Process Stages1. Define scenarios covering functional and non-functional requirements
2. Evaluate all candidate architectures using scenarios
3. Analyze interaction relationships among scenarios
Example Quality Attributes- Expandability
- Performance
- Modifiability
- Reliability
- Maintainability
Benefits- Combines strengths of multiple architectures
- Allows optimization for specific system aspects
- More flexible approach to complex systems
Challenges- Increased complexity
- Integration issues between different architecture styles
- Requires broader expertise from architects

Distributed Architecture

Architecture StyleProsCons
Client/Server- Separation of responsibilities (UI presentation and business logic)
- Reusability of server components
- Lack of heterogeneous infrastructure for requirement changes
- Security complications
- Server availability and reliability concerns
- Testability and scalability challenges
- Fat-client/thin-client issues (application dependent)
Multi-tier- Enhanced reusability
- Scalability through middle tier
- Multi-threading support
- Reduced network traffic
- Complex testability
- Additional overhead through multiple layers
Broker- Server implementation and location transparency
- Changeability and extensibility
- Simple client access to servers
- Interoperability via broker bridges
- Reusability
- Runtime changes to server components
- Inefficiency due to proxy overhead
- Low fault-tolerance
- Difficulty in testing
Service-Oriented Architecture (SOA)- Loosely-coupled connections
- Independent service components (stateless)
- Interoperability across platforms/technologies
- High reusability of services
- Scalability
- Complexity in service orchestration
- Service management overhead
- Potential performance impacts from service discovery
Enterprise Service Bus (ESB)- Unified architecture for high reusability
- Addresses reliability and scalability issues
- Supports asynchronous queuing
- Enables event-driven messaging
- Centralizes policy and rules management
- Additional architectural complexity
- Performance overhead from intermediate processing
- Configuration and management challenges
  • Think about Broker as a middleware style architecture

    • RPC
    graph LR
      Client1[Client A] --> ClientProxy1[Client Proxy A]
      Client2[Client B] --> ClientProxy2[Client Proxy B]
    
      ClientProxy1 --> Broker1[Broker 1]
      ClientProxy2 --> Broker1
    
      Broker1 <--> Bridge[Bridge]
      Bridge <--> Broker2[Broker 2]
    
      Broker1 --> ServerProxy1[Server Proxy X]
      Broker1 --> ServerProxy2[Server Proxy Y]
    
      Broker2 --> ServerProxy3[Server Proxy Z]
    
      ServerProxy1 --> Server1[Server X]
      ServerProxy2 --> Server2[Server Y]
      ServerProxy3 --> Server3[Server Z]
    
      classDef client fill:#d4f1f9,stroke:#333,stroke-width:1px
      classDef proxy fill:#ffdebd,stroke:#333,stroke-width:1px
      classDef broker fill:#ffe6e6,stroke:#333,stroke-width:1px
      classDef server fill:#dff9d4,stroke:#333,stroke-width:1px
      classDef bridge fill:#f9e4f9,stroke:#333,stroke-width:1px
    
      class Client1,Client2 client
      class ClientProxy1,ClientProxy2,ServerProxy1,ServerProxy2,ServerProxy3 proxy
      class Broker1,Broker2 broker
      class Server1,Server2,Server3 server
      class Bridge bridge
    

Data-Centered Architecture

ConceptDescription
DefinitionArchitecture where a central data structure is accessed by independent components that do not interact directly with each other
Core PrincipleSystem components communicate through a shared data store rather than directly with each other
Primary StylesRepository and Blackboard
Main ComponentsCentral data store and independent components/knowledge sources
FeatureRepository StyleBlackboard Style
Central Data StructurePassive data store with well-defined schemaDynamic shared knowledge base
Control FlowComponents directly access the repository; no centralized controlControl component mediates access and determines processing sequence
Component InteractionComponents operate independently, unaware of other componentsComponents contribute incrementally and can build on others’ results
Data Access PatternData queries and transactions (usually structured)Opportunistic problem-solving; components trigger when relevant
Use CasesStructured data-intensive systems (databases, CASE tools)AI systems, pattern recognition, complex problem-solving
Problem DomainWell-understood problems with clear data modelsUncertain or open-ended problems requiring multiple solution strategies
ExamplesDatabase management systems, version control systemsSpeech recognition, image understanding, diagnostic systems
Processing ModelTransaction-based, data-drivenEvent-driven, opportunity-driven
Advantages- Data integrity
- Data independence
- Efficient data sharing
- Flexible problem-solving
- Supports partial solutions
- Adaptable to uncertain domains
Disadvantages- Single point of failure
- Performance bottlenecks
- Limited to structured problems
- Complex control mechanisms
- Difficult to debug
- Higher overhead for coordination
Component KnowledgeComponents know repository schema but not other componentsComponents know blackboard structure but not other components
EvolutionEasier to modify data schema, harder to change processingEasier to add new knowledge sources, modify problem-solving approach
Suitable forBusiness systems, data warehousing, content managementPrototype systems, complex event processing, intelligent systems