Architectural Styles I

Size: px
Start display at page:

Download "Architectural Styles I"

Transcription

1 Architectural Styles I Software Architecture VO/KU ( / ) Denis Helic, Roman Kern KMI, TU Graz Nov 14, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

2 Recap Software architecture defines the components and their relationships in a (complex) system Software architecture tries to solve the non-functional requirements... and focus on the non-runtime quality attributes - X-ability e.g. maintainability, evolvability, testability, reusability, integrability, configurability, scalability Some of them can be measured, some only estimated Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

3 Recap Software architecture is also influenced by infrastructure e.g. organizational issues (team), implementation issues (programming language), contextual issues (open source) the job is to find the best compromise Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

4 Outline 1 Non-Functional Concepts 2 Introduction to Architectural Syles 3 Data-flow Architectures 4 Data-centered Architectures 5 Layered Architectures 6 Notification Architectures Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

5 Non-Functional Concepts Functionality Shared between Software Components Requirements not covered by individual components Instead requirements needed to be addressed by each component Or constraints imposed on each component Cross-cutting concerns Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

6 Non-Functional Concepts Examples for Cross-Cutting Concerns Logging Auditing Monitoring Exception/error handling Security (e.g. authentication, authorisation) Caching Localisation Configuration management Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

7 Non-Functional Concepts Cross-Cutting Functionality Implications Why are cross-cutting aspects a problem? They do need to be consistently used/implemented by all components Some components might not allow this If the cross-cutting functionality need to be adapted, all components need to be modified Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

8 Non-Functional Concepts Cross-Cutting Concerns on the Implementation Level Cross-cutting concerns also exist on the implementation level Addressed by aspect oriented programming Aspects are factored out and moved away from the functionality E.g. logging is done in a separate module and at runtime injected into the method calls Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

9 Non-Functional Concepts Cross-Cutting Concerns on the SA Level Keep cross-cutting functionality in separate components (is possible) E.g. dedicated component for authentication/authorisation Use components that utilise for example aspect oriented programming Interceptor architectural pattern Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

10 Non-Functional Concepts Communication between Software Components Software components communicate with each other They need to agree on a protocol, API,... Thus components share common information (e.g. protocol specification, contract,...) E.g. The receiver implements the API, the sender uses the API This relationship is therefore directed Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

11 Non-Functional Concepts Coupling Coupling: degree to which software components depend on each other The degree is influenced on a couple of aspects (more than in OO languages) E.g. how generic is the protocol? Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

12 Non-Functional Concepts Degree of Coupling Loose coupling vs. tight coupling These are the both extremes In existing systems this is often a continuum Components might be tightly in one aspect and loosely coupled in another Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

13 Aspects of Coupling Non-Functional Concepts Level Loose Coupling Tight Coupling Physical coupling Physic intermediary Direct physical link required Communication style Asynchronous Synchronous Type system Data-centric, selfcontained OO-Style, complex ob- messages ject trees Control of process Distributed logic compo- Central control depen- logic Platform dencies nents OS- and programming language independent Source: Enterprise SOA Strong OS and programming language dependencies Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

14 Non-Functional Concepts Consequences of Tight Coupling If one software component changes, the other (dependant) components need to be changed as well API/protocol specific to the needed requirements Often enforced by cross-cutting concerns Typically it is easier (less effort) to create tightly coupled components Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

15 Non-Functional Concepts Consequences of Loose Coupling Components can be easily exchanged Components are required to be more generic E.g. use standard protocols instead of custom ones Will typically require more effort and better design/planning Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

16 Non-Functional Concepts Type of Coupling in Regard to Quality Attributes Coupling has an impact on quality attributes Loose coupling will typically improve maintainability, evolvability, reusability Tight coupling will typically improve the achievable performance (and traceability) For some attributes it is not clear, e.g. testability Therefore slight preference to loose coupling Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

17 Examples of Coupling Non-Functional Concepts CalcViewer AppControl GUI HTTP AppControl Controller NetAnalysis NotifServ Data NetAnalyzer Calcs Datasets Users External System Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

18 Non-Functional Concepts Examples of Coupling Tight coupling between Controller and the NetAnalyzer Due to callback (both need to know each other, there might even be a temporal coupling here) Loose coupling between NetAnalyzer and External System The external system does not need to know the NetAnalyzer The external system uses a standard protocol (e.g. SMTP) Easy to exchange the external system Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

19 Introduction to Architectural Syles Experience in building software systems Over the years a lot of experience has been gained Certain patterns and structures appear very often Such patterns and structures become a part of the vocabulary Vocabulary is used by designers to think and talk about the architectural design An architectural style is a particular pattern that focuses on the large-scale structure of a system typically described by the common vocabulary Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

20 Introduction to Architectural Syles Architectural style definition Architectural style defines the structural pattern, which consists of the components that are used the connections that can be used set of constraints how they can be used Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

21 Introduction to Architectural Syles Architectural style An architectural style is constrained by a particular principle of how to build systems How components are organized, how data is manipulated, how components communicate,...? E.g. a hierarchy of components, sequential processing of data, asynchronous communication,... Each principle influences some quality attributes in a positive and some other in a negative way It is again balancing between advantages and disadvantages Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

22 Introduction to Architectural Syles Classification of styles 1 Data-flow architectures 2 Data-centered architectures 3 Abstraction layer architectures 4 N-tier architectures 5 Notification architectures 6 Remote invocation and service architectures 7 Heterogeneous architectures Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

23 Data-flow Architectures Data-flow architectures These architectures have the goal of achieving the quality of reuse and modifiability. The data-flow style is characterized by viewing the system as a series of transformations on successive pieces of input data. Data enter the system and then flows through the components one at a time until Finally, the data is assigned to some final destination (output or a data store). Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

24 Data-flow Architectures Data-flow architectures Data-flow architectures can be classified into batch-sequential architectures and pipe and filters In the batch sequential style each step runs to completion before the next step starts E.g. UNIX command line pipes In pipe and filters style steps might run concurrently processing parts of data incrementally Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

25 Data-flow Architectures Pipes and filters Data flows through pipes: communication channels between filters Processing units: filters Depending on where the filters reside different execution architectures E.g. same process: filters run within threads E.g. same machine: filters run within own processes E.g. network: pipes use the networking architecture Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

26 Data-flow Architectures Pipes and filters Conceptually filters consume data from input and write data to output Input and output: communication channels, i.e. pipes Depending on where the filters reside different execution architectures Filters do not know anything about other filters Ideally they are completely independent from each other Data flows in streams: good for processing of images, audio, video,... Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

27 Pipes and filters Data-flow Architectures Figure: Pipe and filters style Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

28 Data-flow Architectures Pipes and filters Variations: structural and communicational Structural: more complex topologies might be used E.g. loops, branches, more than one input,... Term pipeline used for linear sequence of filters Communicational: are filters blocked and wait for data? Term bounded pipe for limited amount of data in the pipe Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

29 Data-flow Architectures Pipes and filters What is the data-structure within the pipe? All components in the pipe have to agree Term typed pipe if data is structured The more specific the data-structures are, the tighter the coupling Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

30 Data-flow Architectures Pipes and filters How is the data consumed? Streaming, or All data at once (batch sequential), or Chunks of data Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

31 Pipes and filters Data-flow Architectures Figure: Pipe and filters style Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

32 Data-flow Architectures Pipes and filters - advantages Pipes are conceptually simple (helps maintainability) Components can be reused Easy to add and remove components (helps evolvability) Allow injection of special components to address cross-cutting concerns E.g. monitor throughput, logging,... Allow concurrent/parallel execution (helps scalability) Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

33 Data-flow Architectures Pipes and filters - disadvantages Pipes often lead to batch processing Therefore not well suited for interactive applications E.g. hard to implement incremental updates Lowest common denominator for data structure Each filter has to parse/unparse the data (bad for performance) Adds complexity to each component Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

34 Data-centered Architectures Data-centered architectures These architectures have the goal of achieving the quality of integrability of data. The term refers to systems in which the access and update of a widely accessed data store is their primary goal. Basically, it is nothing more than a centralized data store that communicates with a number of clients Important for this styles are three protocols: communication, data definition and data manipulation protocol Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

35 Data-centered Architectures Data-centered architectures The means of communication distinguishes the two subtypes: repository and blackboard Repository: a client sends a request to the system to perform a necessary action (e.g. insert data) Blackboard: the system sends notification and data to subscribers when data of interest changes, and is thus active Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

36 Repository Data-centered Architectures Figure: Repository style Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

37 Blackboard Data-centered Architectures Figure: Blackboard style Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

38 Data-centered Architectures Database architecture One of the most well-known examples of the data-centered architecture, is a database architecture There is a common database schema (i.e. meta-structure of the repository) - created with data definition protocol E.g. in RDBMS a set of related tables with fields, data types, keys,... Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

39 Data-centered Architectures Database architecture Clients use data manipulation protocol to work with the data E.g. SQL for inserting, selecting, deleting data,... Depending on where clients are situated communication protocol might be An inner-process communication Communication between components on the same machine Communication over network, e.g. LAN, Internet, etc. Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

40 Data-centered Architectures Database architecture Pipes with shared data are similar to data-centered architectures Blackboard architecture traditionally used for complex systems E.g. Speech and pattern recognition Allows loosely coupled components Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

41 Data-centered Architectures Data-centered architectures: advantages Ensures data integrity Reliable, secure, testability guaranteed Clients independent from the system: performance and usability on the client side is typically good Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

42 Data-centered Architectures Data-centered architectures: disadvantages Problems with scalability, reliability (single point of failure) Solutions: shared repositories, replication but this increases complexity Unclear border which functionality lies in the DB and which in the client Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

43 Data-centered Architectures Web architecture Another example of data-centered architectures is the Web architecture There is a common data schema (i.e. meta-structure of the Web) Follows hypermedia data model Pages (nodes) and links between them, as well as addressing mechanism Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

44 Data-centered Architectures Web architecture Data manipulation not directly in the system but typically achieved through applications Although HTTP protocol has methods for data manipulation Communication protocol is HTTP Analysis: integrity not guaranteed (404 error) but extremely scalable Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

45 Data-centered Architectures Resource-Oriented Architecture Such architectures look onto the Web as a huge distributed database Data model: nodes addressable by URL and interlinked Data manipulation: HTTP methods (GET, PUT, POST, DELETE) Scalable, good performance, usability, etc. Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

46 Layered Architectures Abstract layer architectures Layering: the structure of the system is organized into set of layers Each layer is on the top of another layer Well-defined interfaces between layers Reduces complexity, improves modularity, reusability, maintainability Different criteria for layering: most notably abstraction Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

47 Layered Architectures Abstract layer architectures Topological constraints: Number of layers? Limit access to next lower layer? Access to layer above? Sometimes abstraction is not completely opaque Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

48 Example Layered Architectures Figure: Layered architecture Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

49 Layered Architectures Operating systems Typically organized into layers Successive layers provide more sophisticated services to the layers above them Hardware services, kernel services, system services, UI services Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

50 Operating systems Layered Architectures Figure: Operating system Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

51 Layered Architectures Virtual machines A virtual machine implements an instruction set for an imaginery machine Often virtual machines are the underlaying mechanism by which a programming language is executed E.g. Java virtual machine, different interpreters Specifies an interface between compiler and a real machine From conceptual point of view very similar to OS Improves portability Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

52 Virtual machines Layered Architectures Figure: Virtual machine Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

53 Layered Architectures Interpreter Similar to a virtual machine, but only limited to execute code E.g. shell script State might be shared between the system components and the script Allows more flexibility At the cost of performance Might help in terms of configurability Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

54 Layered Architectures Peer-to-peer protocol stacks A common example of layered architecture is a network protocol stack E.g. TCP/IP protocol stack Four layers The lowest layer handles communication between two computers The internet layer handles routing of packets accross the network Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

55 Layered Architectures Peer-to-peer protocol stacks The transport layer guarantees that packets are error-free and that they are received in the same order as they are sent The application layer supports application-specific protocols E.g. HTTP, SMTP, FTP,... The layers constitute a series of increasingly abstract operations Higher layers span a virtual connection between computers on the network Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

56 Layered Architectures Peer-to-peer protocol stacks Figure: TCP/IP protocol stack Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

57 Layered Architectures Layered architecture - advantages Each layer is only coupled to the adjacent layers Helps evolvability, as one can exchange a single layer and limit modifications to neighbour layers Helps reusability, as layers can by used by multiple systems Especially, if the communication is standardised In practice each layer is often maintained by dedicated development teams Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

58 Layered Architectures Layered architecture - disadvantages Not all systems lend themselves to be organised in layers Abstraction might have negative effect of performance E.g. specific optimisations not possible Hard to find right level of abstraction In practice lot of effort to implement features which affect multiple layers Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

59 Layered Architectures N-tier architectures Thr N-tier architecture is the modern client-server architecture Originated with business applications Through the popularity of the Web today typically related with Web applications Conceptually separate architecture into presentation, application and data storage layers Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

60 Layered Architectures 2-tier architectures Clients are typically rich (ui+applogic+communication) Servers store data Each client runs a complete application Drawbacks: each client has to know how to communicate with all data servers Scalability is compromised because client are tightly coupled with servers Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

61 2-tier architectures Layered Architectures Figure: 2-tier architecture Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

62 Layered Architectures 3-tier architectures Evolved from 2-tier architectures to solve their drawbacks A third tier is inserted between clients and data servers Application or business logic tier: middle tier Typically middle tier is on the server side (but recently might be split between the server and the client) Scalability improved because clients are thiner Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

63 3-tier architectures Layered Architectures Figure: 3-tier architecture Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

64 Layered Architectures 3-tier architectures Another advantages Easier client maintenance because the middle tier can be updated in isolation Better isolation of specifics of the data storage: extensibility, configurability Better network utilization Possibility of adding additional processing layers in the middle layer Cleanly seprates presentation, application logic and data storage Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

65 3-tier architectures Layered Architectures Figure: Presentation, application, data Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

66 Layered Architectures Rich clients A rich client contains full knowledge of application It has access to the full suite of UI mechanisms on the platform Two types of rich clients Clients for standard applications using a standard protocol (e.g. clients) Clients for custom applications using a custom protocol Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

67 Rich clients Layered Architectures Figure: Rich client architecture Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

68 Layered Architectures Thin clients Thin clients have no knowledge on application The complete application knowledge is on the server Most notably: Web clients Even if we use AJAX: it is served by server, i.e. the application knowledge is on the server Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

69 Layered Architectures Thin clients Another form: a graphical thin client Only displays a graphical user interface In this architecture we have a so-called display server It resides on the server side but acts as a user-interface screen It transmits changes in the user-screen to the client X-server and X-windows on UNIX systems Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

70 Thin clients Layered Architectures Figure: Thin client architecture Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

71 Notification Architectures Notification architectures Architectures where information and activity is propagated by a notification mechanism When there are complex communication patterns that are not known at design time Basically, components interested in events register their interest When an event occurs the interested components are notified Well-known example: event handling in GUIs Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

72 Notification Architectures Notification architectures Also called: publish-and-subscribe Other terminology: listeners and callbacks Observer pattern Similar to blackboard data-centric architectures Notification architectures are more general because any kind of events might occur not only data-related events Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

73 Notification Architectures Notification architectures At execution level two variants Components interested in events register directly with the process that generates these events Components register with a dedicated notification component The communication style in both variants is callback Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

74 Notification Architectures Notification architectures Additional variants When an event occurs the notifying component may send the event to all registered components (broadcast) Another possibility is to send the event only to interested components Variations in communication style Notification might include all the relevant data (push style) Notification just signals that something happened: the registered component pulls the relevant data Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

75 Notification Architectures Notification architectures Figure: Notification architecture Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

76 Notification Architectures Notification architectures Figure: Notification architecture Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

77 Notification Architectures Notification architectures Similar to notification architecture: message queues Used to control process flow Two types: publish/subscribe and point-to-point Publish/subscribe also known as topics Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

78 Notification Architectures Notification architectures Examples of notification style architectures Triggers in databases, consistency check Spell checking in editors Separation of presentation from persistence of data Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

79 Notification Architectures Notification architectures - advantages Loose coupling Notification receivers can easily be changed and added Helps evolvability Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

80 Notification Architectures Notification architectures - disadvantages No control over process flow Due to asynchronous nature, might not be deterministic (bad for testability) Unclear which data should be passed with the notification If too little data is passed, the receiver might need to fetch it (increases coupling) Performance issues due to update storm Even worse, there might be endless loops Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, / 80

Architectural Styles I

Architectural Styles I Architectural Styles I Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-07 Roman Kern (KTI, TU Graz) Architectural Styles I 2015-01-07 1 / 86 Outline 1 Non-Functional Concepts

More information

Architectural Styles II

Architectural Styles II Architectural Styles II Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 21, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles II Nov 21, 2012 1 / 66

More information

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

An Introduction to Software Architecture. David Garlan & Mary Shaw 94 An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data

More information

An Introduction to Software Architecture

An Introduction to Software Architecture An Introduction to Software Architecture Software Engineering Design Lecture 11 Motivation for studying SW architecture As the size of SW systems increases, the algorithms and data structures of the computation

More information

An Introduction to Software Architecture

An Introduction to Software Architecture An Introduction to Software Architecture Software Requirements and Design CITS 4401 Lecture 11 Motivation for studying SW architecture As the size of SW systems increase, the algorithms and data structures

More information

CLIENT SERVER ARCHITECTURE:

CLIENT SERVER ARCHITECTURE: CLIENT SERVER ARCHITECTURE: Client-Server architecture is an architectural deployment style that describe the separation of functionality into layers with each segment being a tier that can be located

More information

Execution Architecture

Execution Architecture Execution Architecture Software Architecture VO (706.706) Roman Kern Institute for Interactive Systems and Data Science, TU Graz 2018-11-07 Roman Kern (ISDS, TU Graz) Execution Architecture 2018-11-07

More information

Architectural Styles. Software Architecture Lecture 5. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.

Architectural Styles. Software Architecture Lecture 5. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Software Architecture Lecture 5 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Object-Oriented Style Components are objects Data and associated

More information

Software Architecture

Software Architecture Software Architecture Lecture 6 Event Systems Rob Pettit George Mason University SWE 443 Software Architecture Event Systems 1 previously data flow and call-return styles data flow batch sequential dataflow

More information

Implementation Architecture

Implementation Architecture Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern ISDS, TU Graz 2017-11-15 Roman Kern (ISDS, TU Graz) Implementation Architecture 2017-11-15 1 / 54 Outline 1 Definition

More information

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views 1 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES Outline for Today 2 Architecture views C&C Views 1 Components and Connectors (C&C) Styles 3 Elements Relations Properties

More information

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered Topics covered Chapter 6 Architectural Design Architectural design decisions Architectural views Architectural patterns Application architectures Lecture 1 1 2 Software architecture The design process

More information

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design Chapter 6 Architectural Design Lecture 1 1 Topics covered ² Architectural design decisions ² Architectural views ² Architectural patterns ² Application architectures 2 Software architecture ² The design

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures Chapter 6 Architectural design 2 PART 1 ARCHITECTURAL DESIGN

More information

Software Architecture

Software Architecture Software Architecture Lecture 5 Call-Return Systems Rob Pettit George Mason University last class data flow data flow styles batch sequential pipe & filter process control! process control! looping structure

More information

Chapter 6 Architectural Design. Chapter 6 Architectural design

Chapter 6 Architectural Design. Chapter 6 Architectural design Chapter 6 Architectural Design 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process for identifying

More information

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

An Introduction to Software Architecture By David Garlan & Mary Shaw 94 IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion An Introduction to

More information

Implementation Architecture

Implementation Architecture Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2014-11-19 Roman Kern (KTI, TU Graz) Implementation Architecture 2014-11-19 1 / 53 Outline 1 Definition 2

More information

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Chapter 1: Solving Integration Problems Using Patterns 2 Introduction The Need for Integration Integration Challenges

More information

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture Objectives Architectural Design To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural

More information

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

An Introduction to Software Architecture By David Garlan & Mary Shaw 94 IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion An Introduction to

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software Architecture by Tao et al. (Chapters 6 and 7) 1

More information

Architectural Styles - Finale

Architectural Styles - Finale Material and some slide content from: - Emerson Murphy-Hill - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Architectural Styles - Finale Reid Holmes Lecture

More information

Architecture Styles. Instructor: Yongjie Zheng February 7, CS 5553: Software Architecture and Design

Architecture Styles. Instructor: Yongjie Zheng February 7, CS 5553: Software Architecture and Design Architecture Styles Instructor: Yongjie Zheng February 7, 2017 CS 5553: Software Architecture and Design Architecture styles: a named collection of architecture design decisions that (1) are applicable

More information

Software Architecture

Software Architecture Software Architecture Lecture 7 Communicating Peers João Pedro Sousa George Mason University previously, event systems within the interacting processes family data flow batch sequential dataflow network

More information

Lecture 1. Chapter 6 Architectural design

Lecture 1. Chapter 6 Architectural design Chapter 6 Architectural Design Lecture 1 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process

More information

Software Architecture

Software Architecture Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment

More information

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2 Chapter 1: Distributed Information Systems Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ Contents - Chapter 1 Design

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures PART 1 ARCHITECTURAL DESIGN DECISIONS Recap on SDLC Phases

More information

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Layers of an information system. Design strategies.

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Layers of an information system. Design strategies. Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 2 Distributed Information Systems Architecture Chapter Outline

More information

Configuring the Oracle Network Environment. Copyright 2009, Oracle. All rights reserved.

Configuring the Oracle Network Environment. Copyright 2009, Oracle. All rights reserved. Configuring the Oracle Network Environment Objectives After completing this lesson, you should be able to: Use Enterprise Manager to: Create additional listeners Create Oracle Net Service aliases Configure

More information

Architectural Design

Architectural Design Architectural Design Objectives To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction

More information

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process Architectural Design Objectives To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural

More information

Chapter 1: Distributed Information Systems

Chapter 1: Distributed Information Systems Chapter 1: Distributed Information Systems Contents - Chapter 1 Design of an information system Layers and tiers Bottom up design Top down design Architecture of an information system One tier Two tier

More information

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 2 Distributed Information Systems Architecture Chapter Outline

More information

殷亚凤. Processes. Distributed Systems [3]

殷亚凤. Processes. Distributed Systems [3] Processes Distributed Systems [3] 殷亚凤 Email: yafeng@nju.edu.cn Homepage: http://cs.nju.edu.cn/yafeng/ Room 301, Building of Computer Science and Technology Review Architectural Styles: Layered style, Object-based,

More information

DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES

DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES Dr. Jack Lange Computer Science Department University of Pittsburgh Fall 2015 Outline System Architectural Design Issues Centralized Architectures Application

More information

Test On Line: reusing SAS code in WEB applications Author: Carlo Ramella TXT e-solutions

Test On Line: reusing SAS code in WEB applications Author: Carlo Ramella TXT e-solutions Test On Line: reusing SAS code in WEB applications Author: Carlo Ramella TXT e-solutions Chapter 1: Abstract The Proway System is a powerful complete system for Process and Testing Data Analysis in IC

More information

Introduction to Software Engineering 10. Software Architecture

Introduction to Software Engineering 10. Software Architecture Introduction to Software Engineering 10. Software Architecture Roadmap > What is Software Architecture? > Coupling and Cohesion > Architectural styles: Layered Client-Server Blackboard, Dataflow,... >

More information

XVIII. Software Architectures

XVIII. Software Architectures XVIII. Software Architectures Software Architectures Subsystems, Modules and Connectors Pipes and Filters, Object-Oriented, Layered, Event-Driven, Repository-Based Architectures Client Server Architectures

More information

SOFTWARE ARCHITECTURE INTRODUCTION TO SOFTWARE ENGINEERING PHILIPPE LALANDA

SOFTWARE ARCHITECTURE INTRODUCTION TO SOFTWARE ENGINEERING PHILIPPE LALANDA SOFTWARE ARCHITECTURE INTRODUCTION TO SOFTWARE ENGINEERING PHILIPPE LALANDA PURPOSE OF THIS CLASS An introduction to software architecture What is an architecture Why it is important How it is represented

More information

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Chapter 03 (version February 11, 2008) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20.

More information

Chapter 2 Distributed Information Systems Architecture

Chapter 2 Distributed Information Systems Architecture Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 2 Distributed Information Systems Architecture Chapter Outline

More information

ICS 52: Introduction to Software Engineering

ICS 52: Introduction to Software Engineering ICS 52: Introduction to Software Engineering Fall Quarter 2004 Professor Richard N. Taylor Lecture Notes Week 3: Architectures http://www.ics.uci.edu/~taylor/ics_52_fq04/syllabus.html Copyright 2004, Richard

More information

Active Server Pages Architecture

Active Server Pages Architecture Active Server Pages Architecture Li Yi South Bank University Contents 1. Introduction... 2 1.1 Host-based databases... 2 1.2 Client/server databases... 2 1.3 Web databases... 3 2. Active Server Pages...

More information

Software Architecture Patterns

Software Architecture Patterns Software Architecture Patterns *based on a tutorial of Michael Stal Harald Gall University of Zurich http://seal.ifi.uzh.ch/ase www.infosys.tuwien.ac.at Overview Goal Basic architectural understanding

More information

ESE Einführung in Software Engineering!

ESE Einführung in Software Engineering! ESE Einführung in Software Engineering! 10. Software Architecture! Prof. O. Nierstrasz" Roadmap! > What is Software Architecture?" > Coupling and Cohesion" > Architectural styles:" Layered" Client-Server"

More information

What is Software Architecture

What is Software Architecture What is Software Architecture Is this diagram an architecture? (ATM Software) Control Card Interface Cash Dispenser Keyboard Interface What are ambiguities in the previous diagram? Nature of the elements

More information

Architectural Styles. Reid Holmes

Architectural Styles. Reid Holmes Material and some slide content from: - Emerson Murphy-Hill - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Architectural Styles Reid Holmes Lecture 5 - Tuesday,

More information

Enterprise Web based Software Architecture & Design

Enterprise Web based Software Architecture & Design IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark class discussions Enterprise Web based

More information

Basic Properties of Styles

Basic Properties of Styles Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 18 Enterprise Styles/Patterns (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo Basic

More information

Architectural Patterns

Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm SAPM Spring 2012:

More information

Architectural Patterns. Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2

Architectural Patterns. Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2 Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm

More information

XVIII. Software Architectures

XVIII. Software Architectures XVIII. Software Architectures Software Architectures UML Packages Client-Server vs Peer-to-Peer 3-Tier and 4-Tier Architectures Horizontal Layers and Vertical Partitions The Model-View-Controller Architecture

More information

Architectural patterns and models for implementing CSPA

Architectural patterns and models for implementing CSPA Architectural patterns and models for implementing CSPA Marco Silipo THE CONTRACTOR IS ACTING UNDER A FRAMEWORK CONTRACT CONCLUDED WITH THE COMMISSION Application architecture Outline SOA concepts and

More information

Introduction. CS3026 Operating Systems Lecture 01

Introduction. CS3026 Operating Systems Lecture 01 Introduction CS3026 Operating Systems Lecture 01 One or more CPUs Device controllers (I/O modules) Memory Bus Operating system? Computer System What is an Operating System An Operating System is a program

More information

Software MEIC. (Lesson 20)

Software MEIC. (Lesson 20) Software Architecture @ MEIC (Lesson 20) Last class C&C styles Multi-tier style Dynamic reconfiguration style Peer-to-Peer style Today C&C styles Publish-subscribe style Service-oriented architecture style

More information

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE Dave Clarke 1 THIS LECTURE At the end of this lecture you will know notations for expressing software architecture the design principles of cohesion

More information

CSE 435: Software Engineering. System Design

CSE 435: Software Engineering. System Design System Design Design: HOW to implement a system Goals: Satisfy the requirements Satisfy the customer Reduce development costs Provide reliability Support maintainability Plan for future modifications Design

More information

System Design. Acknowledge: Atlee and Pfleeger (Software Engineering: Theory and Practice)

System Design. Acknowledge: Atlee and Pfleeger (Software Engineering: Theory and Practice) System Design Acknowledge: Atlee and Pfleeger (Software Engineering: Theory and Practice) C 870: Advanced Software Engineering (System Design): Cheng Design: HOW to implement a system Goals: Satisfy the

More information

Chapter 2 Architectures. Software Architectures

Chapter 2 Architectures. Software Architectures Chapter 2 Architectures Software architectures of distributed systems System architectures of distributed systems 1 Software Architectures Software architecture describes how the software components are

More information

WWW Architecture I. Software Architecture VO/KU ( / ) Roman Kern. KTI, TU Graz

WWW Architecture I. Software Architecture VO/KU ( / ) Roman Kern. KTI, TU Graz WWW Architecture I Software Architecture VO/KU (707.023/707.024) Roman Kern KTI, TU Graz 2013-12-04 Roman Kern (KTI, TU Graz) WWW Architecture I 2013-12-04 1 / 81 Web Development Tutorial Java Web Development

More information

Designing and debugging real-time distributed systems

Designing and debugging real-time distributed systems Designing and debugging real-time distributed systems By Geoff Revill, RTI This article identifies the issues of real-time distributed system development and discusses how development platforms and tools

More information

Enterprise Software Architecture & Design

Enterprise Software Architecture & Design Enterprise Software Architecture & Design Characteristics Servers application server, web server, proxy servers etc. Clients heterogeneous users, business partners (B2B) scale large number of clients distributed

More information

Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila

Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila Software Design and Architecture Software Design Software design is a process of problem-solving

More information

Software Architectures

Software Architectures Software Architectures Distributed Systems L-A Sistemi Distribuiti L-A Andrea Omicini andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di Bologna a Cesena Academic Year 2008/2009

More information

ICS 52: Introduction to Software Engineering

ICS 52: Introduction to Software Engineering ICS 52: Introduction to Software Engineering Fall Quarter 2002 Professor Richard N. Taylor Lecture Notes Week 3: Architectures http://www.ics.uci.edu/~taylor/ics_52_fq02/syllabus.html Copyright 2002, Richard

More information

Chapter 6 Architectural Design

Chapter 6 Architectural Design Chapter 6 Architectural Design Chapter 6 Architectural Design Slide 1 Topics covered The WHAT and WHY of architectural design Architectural design decisions Architectural views/perspectives Architectural

More information

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav BUILDING MICROSERVICES ON AZURE ~ Vaibhav Gujral @vabgujral About Me Over 11 years of experience Working with Assurant Inc. Microsoft Certified Azure Architect MCSD, MCP, Microsoft Specialist Aspiring

More information

CS 575: Software Design

CS 575: Software Design CS 575: Software Design Introduction 1 Software Design A software design is a precise description of a system, using a variety of different perspectives Structural Behavioral Packaging Requirements, Test/Validation

More information

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? CIS 8690 Enterprise Architectures Duane Truex, 2013 Cognitive Map of 8090

More information

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV INTRODUCTION TO Object Oriented Systems 1 CHAPTER 1 Introduction to Object Oriented Systems Preview of Object-orientation. Concept of distributed object systems, Reasons to distribute for centralized objects.

More information

Common Architectural Styles & Patterns

Common Architectural Styles & Patterns Common Architectural Styles & Patterns some we ve already kind of discussed model view controller blackboard client/server layered pipe-and-filter Lots of ways to classify all these Application Domain

More information

Lecture 8: February 19

Lecture 8: February 19 CMPSCI 677 Operating Systems Spring 2013 Lecture 8: February 19 Lecturer: Prashant Shenoy Scribe: Siddharth Gupta 8.1 Server Architecture Design of the server architecture is important for efficient and

More information

3.4 Data-Centric workflow

3.4 Data-Centric workflow 3.4 Data-Centric workflow One of the most important activities in a S-DWH environment is represented by data integration of different and heterogeneous sources. The process of extract, transform, and load

More information

XIX. Software Architectures

XIX. Software Architectures XIX. Software Architectures Software Architectures UML Packages Client-Server vs Peer-to-Peer Horizontal Layers and Vertical Partitions 3-Tier and 4-Tier Architectures The Model-View-Controller Architecture

More information

Establishing the overall structure of a software system

Establishing the overall structure of a software system Architectural Design Establishing the overall structure of a software system Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13 Slide 1 Objectives To introduce architectural design and

More information

New Features Guide Sybase ETL 4.9

New Features Guide Sybase ETL 4.9 New Features Guide Sybase ETL 4.9 Document ID: DC00787-01-0490-01 Last revised: September 2009 This guide describes the new features in Sybase ETL 4.9. Topic Page Using ETL with Sybase Replication Server

More information

Flash: an efficient and portable web server

Flash: an efficient and portable web server Flash: an efficient and portable web server High Level Ideas Server performance has several dimensions Lots of different choices on how to express and effect concurrency in a program Paper argues that

More information

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Middleware Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Outline Web Services Goals Where do they come from? Understanding middleware Middleware as infrastructure Communication

More information

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev Transactum Business Process Manager with High-Performance Elastic Scaling November 2011 Ivan Klianev Transactum BPM serves three primary objectives: To make it possible for developers unfamiliar with distributed

More information

DS 2009: middleware. David Evans

DS 2009: middleware. David Evans DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between

More information

Creational. Structural

Creational. Structural Fitness for Future of Design Patterns & Architectural Styles Design patterns are difficult to teach, so we conducted a class collaboration where we all researched and reported on a variety of design patterns

More information

OPERATING SYSTEMS. Prescribed Text Book Operating System Principles, Seventh Edition By Abraham Silberschatz, Peter Baer Galvin and Greg Gagne

OPERATING SYSTEMS. Prescribed Text Book Operating System Principles, Seventh Edition By Abraham Silberschatz, Peter Baer Galvin and Greg Gagne OPERATING SYSTEMS Prescribed Text Book Operating System Principles, Seventh Edition By Abraham Silberschatz, Peter Baer Galvin and Greg Gagne OVERVIEW An operating system is a program that manages the

More information

Conceptual Architecture

Conceptual Architecture Conceptual Architecture Software Architecture VO/KU (707.023/707.024) Denis Helic KMI, TU Graz Nov 2, 2011 Denis Helic (KMI, TU Graz) Conceptual Architecture Nov 2, 2011 1 / 42 Outline 1 Definition 2 Designing

More information

WHITE PAPER NGINX An Open Source Platform of Choice for Enterprise Website Architectures

WHITE PAPER NGINX An Open Source Platform of Choice for Enterprise Website Architectures ASHNIK PTE LTD. White Paper WHITE PAPER NGINX An Open Source Platform of Choice for Enterprise Website Architectures Date: 10/12/2014 Company Name: Ashnik Pte Ltd. Singapore By: Sandeep Khuperkar, Director

More information

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware MOM MESSAGE ORIENTED MOM Message Oriented Middleware MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS Peter R. Egli 1/25 Contents 1. Synchronous versus asynchronous interaction

More information

CS 307: Software Engineering. Lecture 10: Software Design and Architecture

CS 307: Software Engineering. Lecture 10: Software Design and Architecture CS 307: Software Engineering Lecture 10: Software Design and Architecture Prof. Jeff Turkstra 2017 Dr. Jeffrey A. Turkstra 1 Announcements Discuss your product backlog in person or via email by Today Office

More information

Distributed KIDS Labs 1

Distributed KIDS Labs 1 Distributed Databases @ KIDS Labs 1 Distributed Database System A distributed database system consists of loosely coupled sites that share no physical component Appears to user as a single system Database

More information

SA Analysis and Design

SA Analysis and Design SA Analysis and Design Software Architecture (707.023) Denis Helic KMI, TU Graz Oct 24, 2012 Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, 2012 1 / 99 Outline 1 Terminology 2 Development Process

More information

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution 1 of 9 10/9/2013 1:38 AM WCF and WF Learning Objectives After completing this topic, you should be able to describe the functions of Windows Communication Foundation describe the features of the Windows

More information

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE Tomas Cerny, Software Engineering, FEE, CTU in Prague, 2014 1 ARCHITECTURES SW Architectures usually complex Often we reduce the abstraction

More information

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Announcements.  me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris Announcements Email me your survey: See the Announcements page Today Conceptual overview of distributed systems System models Reading Today: Chapter 2 of Coulouris Next topic: client-side processing (HTML,

More information

Building Microservices with the 12 Factor App Pattern

Building Microservices with the 12 Factor App Pattern Building Microservices with the 12 Factor App Pattern Context This documentation will help introduce Developers to implementing MICROSERVICES by applying the TWELVE- FACTOR PRINCIPLES, a set of best practices

More information

Lecture 1: January 22

Lecture 1: January 22 CMPSCI 677 Distributed and Operating Systems Spring 2018 Lecture 1: January 22 Lecturer: Prashant Shenoy Scribe: Bin Wang 1.1 Introduction to the course The lecture started by outlining the administrative

More information

Distribution and web services

Distribution and web services Chair of Software Engineering Carlo A. Furia, Bertrand Meyer Distribution and web services From concurrent to distributed systems Node configuration Multiprocessor Multicomputer Distributed system CPU

More information

Operating Systems (ECS 150) Spring 2011

Operating Systems (ECS 150) Spring 2011 Operating Systems (ECS 150) Spring 2011 Raju Pandey Department of Computer Science University of California, Davis CA 95616 pandey@cs.ucdavis.edu http://www.cs.ucdavis.edu/~pandey Course Objectives After

More information

Architectural Styles: Definitions

Architectural Styles: Definitions Component-Based Software Engineering ECE493-Topic 4 Winter 2006 Lecture 7 Architectural Styles in CBSE (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo

More information

Technical Briefing. The TAOS Operating System: An introduction. October 1994

Technical Briefing. The TAOS Operating System: An introduction. October 1994 Technical Briefing The TAOS Operating System: An introduction October 1994 Disclaimer: Provided for information only. This does not imply Acorn has any intention or contract to use or sell any products

More information