Distributed Embedded Systems

Size: px
Start display at page:

Download "Distributed Embedded Systems"

Transcription

1 Distributed Embedded Systems Computer Architecture and Operating Systems 2

2 Literature 1) George Coulouris, Jean Dollimore, Tim Kindberg: Distributed Systems: Concepts and Design. Addison-Wesley Longman, Amsterdam; Auflage: 4th rev. ed. (14. Juni 2005) 2) Andrew S. Tanenbaum, Maarten van Steen: Distributed Systems: Principles and Paradigms. Prentice Hall International; Auflage: 2nd rev. ed. (10. April 2008) 3) Tammy Noergaard: Embedded Systems Middleware: Understanding File Systems, Databases, Virtual Machines, Networking and More!. Butterworth Heinemann (12. September 2008) 4) 5)

3 Content 1. Motivation 2. An Overview of Distributed Software Architecture Approaches 2.1 Pro & Contra Middleware 2.2 Message-Based Architectures 2.3 Service-Based Architectures 2.4 Subscribe-Based Architectures 2.5 Component-Based Architectures 3. Inter-Process-Communication (IPC) in Unix 4. Example: MPI 5. Example: Web Services 6. Example: OPC UA 7. Critical Sections and Deadlocks 8. Example: DDS 9. Example: OSGi 10. Redundancy and Consistency 11. MultiCore Programming and Synchronous Languages

4 Content 1. Motivation 2. An Overview of Distributed Software Architecture Approaches 2.1 Pro & Contra Middleware 2.2 Message-Based Architectures 2.3 Service-Based Architectures 2.4 Subscribe-Based Architectures 2.5 Component-Based Architectures 3. Inter-Process-Communication (IPC) in Unix 4. Example: MPI 5. Example: Web Services 6. Example: OPC UA 7. Critical Sections and Deadlocks 8. Example: DDS 9. Example: OSGi 10. Redundancy and Consistency 11. MultiCore Programming and Synchronous Languages

5 Introduction Definitions Definition Distributed System: A distributed system is an set of communicating execution platforms which work together to solve a problem. Definition Embedded System: An embedded system is a computer system which is not used as a generic computation platform but which is used for a specific set of applications. Embedded systems often have limited resources (memory, processing power,...).

6 Embedded Systems Software Development for Embedded Systems: employees in Germany 18,7 Mrd. Euro turn-around in Germany alone 60 Mrd. Euro world-wide turn-around in 2008 Telecommunication Industrial IT

7 Embedded Systems Examples Application domains: vehicles, factory automation, robotic, avionic, mobil phones, : ca. 50% of computer business in Germany was in embedded systems

8 Embedded Systems Examples Application domains: vehicles, factory automation, robotic, avionic, mobil phones, : ca. 50% of computer business in Germany was in embedded systems

9 Embedded System Example Automotive Systems Modern vehicles up to electronic control units (ECUs) 3-5 communication buses > 1GB Software

10 Embedded System Example Automotive Systems ECUs are typical embedded systems

11 Embedded System Example Automotive Systems

12 Embedded System Example Automotive Systems

13 Embedded System Example Automotive Systems ACC ECU ESP ECU CAN Gateway CAN Engine ECU Central ECU

14 Embedded System Example Automotive Systems Sensors Objects Objects Objects Objects Objects <<Block>> SensorObjectProcessing VehicleState <<Block>> SensorFusion VehicleState <<Block>> FollowControl VehicleState Objects Objects Objects Objects <<Block>> VehicleStateObserver VehicleState <<Block>> TargetSelection VehicleState <<Block>> CruiseCtrl BrakeCtrl Acceleration Acceleration Acceleration ACC Functional Network (SysML Notation) <<Block>> LongitudinalCtrl <<Block>> ACCArbitration Acceleration

15 Embedded System Example Automotive Systems CAN-Bus

16 Embedded System Example Automotive Systems Software is distributed over several ECUs TCM SRM PDM ECM CIM DDM UEC REC DIS

17 Embedded System Example Automation Systems Factories, buildings, plants are today controlled by programmable logical controllers (PLCs) or by other embedded platforms. The PLCs are connected by networks. Source of Pictures: Wiki

18 Embedded System Example Automation Systems Factories, buildings, plants are today controlled by programmable logical controllers (PLCs) or by other embedded platforms. The PLCs are connected by networks. Source of Pictures: Wiki Commons

19 Mechanical Engineering and Plant Construction European manufacturing enterprises with 34 million jobs. 2004: value added by manufacturing 1500 billion. Largest german industry sector ( employees, 6000 companies) Europe is the leading region in this field Quelle: Maschinenbau in Zahl und Bild, VDMA, 2007

20 Mechanical Engineering and Plant Construction The development of automation systems and the respective software is a key challenge in this field. Quelle: Maschinenbau in Zahl und Bild, VDMA, 2007

21 Mechanical Engineering and Plant Construction Titel The development of automation systems and the respective software is a key challenge in this field: World-wide market for automation systems: 228 Mrd. EUR (Stand 2006). In Germany: 32 Mrd. EUR (2006, invest) Annual growth rate in Germany: 6 und 15 % ( ) employees in Germany

22 Embedded System Example Avionics Systems

23 Embedded Distributed Systems Main Topics Process IPC Process IPC Process IPC Process } Topic 3: Applications Middleware Middleware } Topic 2: Middleware Communication Driver Processor Communication Driver Processor Communication System Topic 1: Communication Systems The development of embedded distributed systems comprises different topics: How can communication systems (i.e. networks) be build (topic 1)? How can parallel processes communicate with each other independent of their location in the network (topic 2)? How can applications be developed that exploit the power of parallelism (topic 3)?

24 Embedded Distributed Systems Communication Systems Process IPC Process IPC Process IPC Process Middleware Middleware Topic 1: Com.- Systems } Communication Driver Processor Communication Driver Processor Communication System Distributed system can use different types of execution platforms: computers in a LAN computers connected by the Internet multi core processors parallel computers

25 Embedded Distributed Systems Execution Platforms source: wiki commons Computers in a LAN: medium-high latencies cheap solution very scalable solution

26 Embedded Distributed Systems Execution Platforms Computers connected by the Internet: very high latencies cheap solution very scalable solution Example : 2,660,803 results in the field

27 Embedded Distributed Systems Boinc project: Open source platform for distributed computing in the Internet Execution Platforms

28 Embedded Distributed Systems Execution Platforms Grid computing: computation centers offer computation capabilities to users the computation is done in the internet often highly optimized computers are used in dedicated computation centers (e.g. massive parallel computers) applications have to use a special API/middleware typical applications are scientific and mathematical problems such as simulation (e.g. climate), number theory (e.g. prime number identification) or biology (e.h. protein structures) resources are managed (and often have to be paid for!)

29 Embedded Distributed Systems Execution Platforms source: wiki commons Multi core processors: very low latencies cheap solution no scalable solution

30 Embedded Distributed Systems Execution Platforms source: wiki commons Parallel computers: very low latencies expansive solution scalable solution

31 Embedded Distributed Systems Execution Platforms Currently ( ) fastes computer (according to top500.org): Roadrunner at Los Alamos IBM Cluster with PowerXCell 8i 3200 Mhz ( Infiniband network Linux OS cores GFlops source: wiki commons

32 Embedded Distributed Systems Execution Platforms source: wiki commons Distributed hardware platforms are the subject of specialized lectures and are not a subject of this lecture.

33 Embedded Distributed Systems Communication Systems Process IPC Process IPC Process IPC Process 7. Application Layer Middleware Middleware 6. Presentation Layer Topic 1: Com.- Systems } Communication Driver Processor Communication Driver Processor Communication System 5. Session Layer 4. Transport Layer 3. Network Layer 2. Data Link Layer 1. Physical Layer Communication hardware, drivers and the ISO/OSI standard are the subject of specialized network lectures and are not a subject of this lecture.

34 Embedded Distributed Systems Middleware Topic 2: Middleware } Process IPC Process Middleware Communication Driver IPC Process IPC Process Middleware Communication Driver Processor Processor Communication System Applications (i.e. processes) can be distributed over cores and computers. The source code of the applications should be independent of the execution platform in order 1. to enable the transfer of processes between execution platforms and 2. to enable the dynamic addition/removal of processes. This would support software reuse and would make hardware upgrades easier. Middleware layers abstract therefore execution platforms, hardware, drivers, and specific communication means.

35 Embedded Distributed Systems Middleware Topic 2: Middleware } Process IPC Process Middleware Communication Driver IPC Process IPC Process Middleware Communication Driver Processor Processor Communication System Middleware layers should support: abstraction of execution platforms, basic software, and communication means transparant communication between processes guarantee of Quality of Services (QoS) such as communication latencies/bandwidth, reliability and processor performance management services such as starting/stopping of processes or monitoring

36 Embedded Distributed Systems Applications Topic 3: Applications } Process IPC Process IPC Process IPC Process Middleware Middleware Communication Driver Communication Driver Processor Processor Communication System Application/Software development for distributed system is different from standard software development. Applications must be split into parallel processes. Communication latencies and distributed data management must also be taken into consideration.

37 Embedded Distributed Systems Flynn s taxonomy: Applications Single Data Multiple Data Single Instruction SISD SIMD Multiple Instruction MISD MIMD SISD: One instruction set working on one data set. This is the classical sequential programming approach SIMD: One instruction is executed in parallel on several data. Also called vector computing. Example are graphic processors. MISD: Several programs work in parallel on one datum. Usually used for redundancy. MIMD: Several programs work on different data.

38 Embedded Distributed Systems Applications Today the Single Program Multiple Data (SPMD) strategy is often used in parallel computing: SPMD is a special type of MIMD: One set of instruction (i.e. program) is executed on several platforms (i.e. in form of several processes). Each process can be at a different point in the program.

39 Embedded Distributed Systems Applications How applications can be written as distributed programs and how parallel algorithm work is the subject of lectures about parallel algorithm or distributed programming. It is not the main subject of this lecture.

40 Embedded Distributed Systems Focus of lecture Topic 2: Middleware } Process IPC Process Middleware Communication Driver IPC Process IPC Process Middleware Communication Driver Processor Processor Communication System The focus of this lecture is on middleware issues.

41 Terminology System Architecture Platform 1 SW Module SW Module Network Platform 2 Platform 3 SW Module SW Module We call the model comprising software, hardware, execution platforms, networks, etc. and the dependencies between these element system architecture.

42 Terminology Hardware Topology Platform 1 Network Platform 2 Platform 3 We call the model comprising only hardware, execution platforms, networks, etc. hardware topology.

43 Terminology Software Architecture SW Module SW Module SW Module SW Module We call the model comprising only software and the communication relations between software modules software architecture.

44 Terminology System Architecture Platform 1 SW Module SW Module Network Platform 2 Platform 3 SW Module SW Module Mapping Platform 1 SW Module SW Module Network Platform 2 Platform 3 SW Module SW Module The system architecture is created by mapping the software architecture onto the hardware topology.

45 Terminology System Architecture Platform 1 SW Module SW Module Network Platform 2 Platform 3 SW Module SW Module Mapping Platform 1 SW Module SW Module Network Platform 2 Platform 3 SW Module SW Module Mapping means: Assigning software modules to execution platforms Assigning software modules/functions to tasks Mapping communication relations to inter-process communication means. Communication means are e.g. global variables (within on execution platform) or networks signals (if software modules habe been mapped onto different execution platforms). Connecting software modules to I/O drivers

46 Content 1. Motivation 2. An Overview of Distributed Software Architecture Approaches 2.1 Pro & Contra Middleware 2.2 Message-Based Architectures 2.3 Service-Based Architectures 2.4 Subscribe-Based Architectures 2.5 Component-Based Architectures 3. Inter-Process-Communication (IPC) in Unix 4. Example: MPI 5. Example: Web Services 6. Example: OPC UA 7. Critical Sections and Deadlocks 8. Example: DDS 9. Example: OSGi 10. Redundancy and Consistency 11. MultiCore Programming and Synchronous Languages

47 Middleware Discussion Is a middleware really needed? Process IPC Process IPC Process IPC Process Middleware Middleware Communication Driver Processor Communication Driver Processor Communication System All architectures described here could be implemented directly by coding the communication into the application code. But this approaches has some drawbacks...

48 Middleware Idea A (software) component (SWC) is a reusable software module. A SWC is reusable if it neither directly calls or is called from basic software modules and other application software modules.

49 Middleware Reusability A software module is a not reusable if it directly communicates with another software module: Software Module 1 int g; void foo() {... g = 42;... } Software Module 2 extern int g; void moo() { int x;... x = g;... } Communication via global variables Software Module 1 void foo() {... moo();... } Software Module 2 void moo() {... } Communication via function calls But what happens if a software module must be used in a different context?

50 Middleware Reusability Software Module 1 int g; void foo() {... g = 42;... } Platform Software Module 2 extern int g; void moo() { int x;... x = g;... }? Platform 1 Platform 2 Software Module 1 int g; void foo() {... g = 42;... } Network Software Module 2 extern int g; void moo() { int x;... x = g;... } Now the application source code must be adapted. This also means that all tests must be repeated.

51 Middleware Reusability Software modules are also not reusable if their correct behavior depends heavily on the processor performance, other assumptions about the hardware are made in the application code (e.g. direct access to processor registers) or assumptions about compilers are mades (e.g. pragmas).

52 Middleware Reusable software modules are called software components. Software Components They achieve this: 1. by forbidding any hardware and compiler dependencies in the application code and 2. by allowing software components only to communicate with the outside via so-called ports. Ports are typed by offered and/or required interfaces. Offered Interface Required Interface Port1 Port2 Component

53 Middleware Two components are connected by connecting matching ports. Software Components Port A matches port B if each required interface from A finds a offered interface in B (and vice versa). Component 1 Component 2 PortA PortB Port3 I/F 1 I/F 2 I/F 1 I/F 2 I/F 3 I/F 4 Connection Port1 Port2 Component 3

54 Middleware Components and Ports A port is a proxy for that component that is later on connected to the port. E.g. below, PortA of Component1 is a proxy for Component3. So in the source code, other software components are only referred to via proxies. void foo() {... PortA_IF1_x = 2;... } Component 1 PortA PortB Exemplary Syntax! void g() {... } void moo() {... Port1_IF2_f();... x = Port1_IF1_x;... } I/F 1 I/F 2 I/F 1 I/F 2 Port1 Port2 Component 3 <<Interface>> I/F 1 int x; <<Interface>> I/F 2 void f();

55 Middleware Components and Ports The middleware now 1. implements the communication relations between SWCs (i.e. ports) 2. triggers the application code (i.e. connects the code to the scheduler of the operating system) A middleware can be generated for a specific system architecture. This is called a dynamic middleware. Exemplary Syntax! void foo() {... PortA_IF1_x = 2;... } void g() {... } int gx; void g(); #define PortA_IF1_x gx #define Port1_IF1_x gx #define Port1_IF2_f g void moo() {... Port1_IF2_f();... Or the middleware can be static. Port1 Static middleware provide static x = Port1_IF1_x; Component 3 communication APIs.... } I/F 1 Component 1 PortA I/F 2 I/F 1 I/F 2 PortB Port2 <<Interface>> I/F 1 int x; <<Interface>> I/F 2 void f(); Dynamic Middleware

56 Middleware Components and Ports Dynamic middlewares need less space and processing power. But the system architecture must be fixed as design time. Static middlewares are less optimized but components may be added, modified and removed at a system s runtime. Exemplary Syntax! void foo() {... Write(PortA_IF1_x, 2);... } void g() {... } bool Call(int funcid, params); int Read(ID); bool Write(ID, int value); I/F 1 Component 1 PortA I/F 2 PortB <<Interface>> I/F 1 int x; <<Interface>> I/F 2 void f(); Static Middleware void moo() {... Call(Port1_IF2_f);... x = Read(Port1_IF1_x);... } I/F 1 I/F 2 Port1 Component 3 Port2

57 Middleware Reusability So without middleware approaches, the architectures from above must be directly coded into the application code. This would prevent the migration to other execution platforms (e.g. more or faster processors), the increase/decrease of the number of processes (i.e. higher degree of parallelism, load balancing) or the usage of software modules within other applications. We will therefore assume that a middleware is used.

58 Content 1. Motivation 2. An Overview of Distributed Software Architecture Approaches 2.1 Pro & Contra Middleware 2.2 Message-Based Architectures 2.3 Service-Based Architectures 2.4 Subscribe-Based Architectures 2.5 Component-Based Architectures 3. Inter-Process-Communication (IPC) in Unix 4. Example: MPI 5. Example: Web Services 6. Example: OPC UA 7. Critical Sections and Deadlocks 8. Example: DDS 9. Example: OSGi 10. Redundancy and Consistency 11. MultiCore Programming and Synchronous Languages

59 Message-Based Architectures Idea Message 1 (e.g. here "int x=42") Process 1 Process 2 Message 2 (e.g. here "int x=43") Processes communicate via messages. A message is defined by: sender/receiver data type value

60 Message-Based Architectures Synchronized Messages Synchronized messages: The sender waits until a message has been received, i.e. the program is blocked during the waiting. The receiver waits until a message has been sent, i.e. the program is blocked during the waiting. There is a potential danger here...

61 Message-Based Architectures Synchronized Messages sender sendmessage receiver Wait time receivemessage sender receiver receivemessage Wait time sendmessage

62 Message-Based Architectures Asynchronous Messages Asynchronous messages: The sender sends the messages und continuous with its program. The receiver checks for new messages. If a message has arrived it is returned, otherwise a no new message signal is returned. In both cases, the receiver continues immediately.

63 Message-Based Architectures Asynchronized Messages sender sendmessage receiver time Continues receivemessage sender receiver receivemessage time sendmessage Continues

64 Message-Based Architectures Buffered Architectures In buffered architectures, messages are stored on the sender and/or on the receiver side in buffers. For a bidirectional communication at least 4 buffers are used. Output Buffer Process 1 sendmessage Platform 1 Communication Platform 2 Input Buffer Process 2 receivemessage

65 Message-Based Architectures Buffered Architectures Buffered architectures allow for a temporal and architectural decoupling of the processes. The buffer size is an important parameter. BTW: A buffer size of 1 makes in some cases a lot of sense! Output Buffer Process 1 sendmessage Platform 1 Communication Platform 2 Input Buffer Process 2 receivemessage

66 Message-Based Architectures Pros and Cons Message-based architectures are easy to implement and well suited to reactive systems. Complex protocols (i.e. message sequences) are difficult to implement and to verify. If the overall system behavior depends on the correct order of a huge number of events between a large set of processes, one tends to loose the overview, i.e. errors and race conditions occur (event hell).

67 Content 1. Motivation 2. An Overview of Distributed Software Architecture Approaches 2.1 Pro & Contra Middleware 2.2 Message-Based Architectures 2.3 Service-Based Architectures 2.4 Subscribe-Based Architectures 2.5 Component-Based Architectures 3. Inter-Process-Communication (IPC) in Unix 4. Example: MPI 5. Example: Web Services 6. Example: OPC UA 7. Critical Sections and Deadlocks 8. Example: DDS 9. Example: OSGi 10. Redundancy and Consistency 11. MultiCore Programming and Synchronous Languages

68 Service-Based Architectures Idea In service-based architectures, software modules use services offered by other software modules. A service is a collection of software interfaces (e.g. methods, data or events) and a protocol defining the usage of those service interfaces. Services can be used without knowing anything about a service s implementation and location. E.g. if a service is used twice, different implementations on different computers can be used.

69 Service-Based Architectures Typical Usage ➀ send service description SW Module Broker ➁ get service handle ➂ use service Interface To use a service, software module send a request for a service (comprising a service description) to a service broker which returns a suited service.

70 Service-Based Architectures Example <<Interface>> securityinterface key getkey(id) decrypt (key, message) Component ➀ k = getkey(4) ➁ t = decrypt(k, message) Service Interface Service Implementation A service offers one or several methods to the other software modules. One implementation may implement several services. Please note: Several components may be using a service in parallel.

71 Service-Based Architectures Synchronous Methods A interface may comprise event, data and methods. Events and methods might be asynchronous and synchronous. For events, the differences have already be outlined ( see Event-based Architectures ). Synchronous methods: The calling software module waits until the called method is finished and the results have been returned. Caller SWC Service SWC Service.foo() time Wait foo() Execution

72 Service-Based Architectures Asynchronous Methods Asynchronous methods: The calling software does not waits until the called method finishes. The result is returned by calling a callback-function. The callback-function is normally part of the caller software module. Caller SWC Service.foo() Service SWC foo() Continues callback_fct() Execution Execution time

73 Service-Based Architectures State Freeness <<Interface>> securityinterface key getkey(id) decrypt (key, message) Component ➀ k = getkey(4) ➁ t = decrypt(k, message) Service Interface Service Implementation Because services may be used be used by several software modules in parallel and because the implementation behind a service may change between different service usages, a service must always behave similarly. I.e. it must be state free (transient).

74 Service-Based Architectures State Freeness In such state-free systems, each service call may be answered by a new implementation of the service (or a new instance of a service method). Of course, this is only one possible implementation. In practice, often only one specific instance of the service is used. <<Interface>> securityinterface Component key getkey(id) decrypt (key, message) ➀ k = getkey(4) Service Interface Service Implementation ➁ t = decrypt (k, message) «instance» Service Instance for "getkey" «instance» Service Instance for "decrypt" Meta-Level Instance-Level A subset X of a model is called a meta-model of a subset Y iff for each element relation R(x, y), x X, y Y the relation R defines an instantiation ( y is a an instance of x ).

75 Service-Based Architectures Example: State Freeness <<Interface>> bankaccount accountid openaccount(name) addmoney (accountid, amount) closeaccount (accountid) ➀ id=openaccount("peter Müller") Component ➁ addmoney(id, 42) ➂ closeaccount(id) Service Interface Service Implementation ➀ pid = findperson ("Peter Müller") ➁ debts = checkdebts(pid) Service Interface Service Implementation <<Interface>> checkfinancestatus personid findperson(name) float checkdebts(personid) Please note: State freeness talks about the state of services, not about the state of further databases, devices, etc. And in practice, services often allow for the storing of additional information (which may destroy the advantage of the service-based architecture ).

76 Service-Based Architectures Pros and Cons The state freeness make the handling and understanding of complex systems easier (since other module s states need not be taken into consideration at development time). But this forces calling software modules to remember everybody s state, i.e. much information must be transfered to services.

77 Content 1. Motivation 2. An Overview of Distributed Software Architecture Approaches 2.1 Pro & Contra Middleware 2.2 Message-Based Architectures 2.3 Service-Based Architectures 2.4 Subscribe-Based Architectures 2.5 Component-Based Architectures 3. Inter-Process-Communication (IPC) in Unix 4. Example: MPI 5. Example: Web Services 6. Example: OPC UA 7. Critical Sections and Deadlocks 8. Example: DDS 9. Example: OSGi 10. Redundancy and Consistency 11. MultiCore Programming and Synchronous Languages

78 Subscribe-Based Architectures Idea Data-centric approach, i.e. all communication is with data objects. Data objects have a type, a value and further describing attributes (update timing, redundancy, etc). No direct communication between software modules. Components can write and read data values. Furthermore, components may be notified about value changes, e.g. by calling a callback function in the component. Component Component Component read current value set new value notify about new value set new value Temperature1:Double updatetime = "100ms" velocity:double updatetime = "10ms"

79 Subscribe-Based Architectures Constraints Constraints may be modeled between data. Constraints verify the consistency of missing data or they allow for the computation of value ranges for missing data values. Umsatz:Euro Umsatz > Gewinn Gewinn:Euro Bonus = Gewinn* 0.1 Bonus:Euro

80 Subscribe-Based Architectures Pros and Cons In many domains data-centric approaches are rather natural. E.g. systems using bus communication networks (automotive, avionics). Contradicts to some extend the OO paradigm. Constraints may lead to time-consuming value updates. If application behavior depends on too many data values, the application becomes hard to test and to understand.

81 Content 1. Motivation 2. An Overview of Distributed Software Architecture Approaches 2.1 Pro & Contra Middleware 2.2 Message-Based Architectures 2.3 Service-Based Architectures 2.4 Subscribe-Based Architectures 2.5 Component-Based Architectures 3. Inter-Process-Communication (IPC) in Unix 4. Example: MPI 5. Example: Web Services 6. Example: OPC UA 7. Critical Sections and Deadlocks 8. Example: DDS 9. Example: OSGi 10. Redundancy and Consistency 11. MultiCore Programming and Synchronous Languages

82 Component-Based Architectures Idea In component-based architectures, the overall application consists of communicating software components. Unlike in service-oriented architecture, the SWCs have states. I.e. when developing such systems, one needs precise information about the side-effects of operations. Platform 1 Component 1 Component 2 PortA PortB Port3 Network Platform 2 Platform 3 Port1 Port2 PortA PortB Component 3 Component 4

83 Component-Based Architectures Idea Interfaces are similar to interfaces used for service-oriented architectures. Again, synchronous and asynchronous calls are possible. Platform 1 Component 1 Component 2 PortA PortB Port3 Network Platform 2 Platform 3 Port1 Port2 PortA PortB Component 3 Component 4

84 Component-Based Architectures SWCs and States So in such software architectures, all communication is defined between SWCs on the instance level. Please remember: In service-oriented architecture the communication was between SWCs on instance level and services on the meta-level. Of course, several SWCs can be instances of the same meta classes. «Meta-Class» Class A «instance» Component 1 PortA PortB «instance» «Meta-Class» Class B «instance» Component 2 Port3 «Meta-Class» Class C «instance» Meta-Level Instance-Level Port1 Port2 PortA PortB Component 3 Component 4

85 Component-Based Architectures Multiple-Instantiation & Roles In the software architecture below, the meta-class blinker is instantiated twice. These usages in one architecture are called roles. Role 1 is Blinker Left, the second one is Blinker Right. «instance» «Meta-Class» Class Blinker «instance» Blinker Left Blinker Right Input PortB PortB Input Light Port2 DiagPort Blinker Control Blinker Diagnosis

86 Component-Based Architectures Multiple-Instantiation & Roles Now 4 roles exists. A role is defined by its context of usage, i.e. its position in a specific software architecture. Components often can be hierarchical. Such components have delegate ports and delegate connections which relay ports within the software components to ports of the hierarchical component. «instance» «instance» «Meta-Class» Class Blinker «instance» «instance» Blinker Left Blinker Right Blinker Left Blinker Right Input PortB PortB Input Input PortB PortB Input Light Port2 DiagPort Light Port2 DiagPort Blinker Control Blinker Diagnosis Blinker Control Blinker Diagnosis <<delegate>> Hierarchical Component Blinker Front <<delegate>> Hierarchical Component Blinker Rear Light Control

87 Component-Based Architectures Client-Server & n-tier Arch. A client-server architecture is a special kind of component-based architecture: There is a set of SWCs on one or several execution platforms that does the majority of computations. These execution platforms are called servers, the SWCs are called server components. There is another set of SWCs on separat execution platforms which mainly uses server components to implement their application. This execution platform is called the client, the SWCs are called client components. Typical server applications are: databases booking and reservation systems web server application. Typical client applications are: GUI frontends web browsers.

88 Component-Based Architectures 2-Tier Architectures Client-server architectures can have a 2-tier structure: Client Platform Client Component PortA Frontend: GUI visualization... Network Server Platform Port1 Server Component Backend: majority of computations and processing databases

89 Component-Based Architectures 3-Tier Architectures Client-server architecture normally have a 3-tier structure: Presentation Tier Presentation Component PortA Presentation Tier: GUI visualization... Network Application Tier Port1 Application Component Port2 Application Tier: majority of computations and processing also called Business Logic Tier Network PortX Data Component Data Tier Data Tier: databases

90 Component-Based Architectures 2-Tier vs. 3-Tier 3-Tier approaches are preferred because separation between application logic and data (separation of concerns) tiers can be easily replaced no dependencies between presentation tier and data tier higher software reuse better load balancing between execution platforms Client Platform Server Platform Port1 Client Component PortA Server Component Network Presentation Tier Presentation Component PortA Application Tier Port1 Application Component Port2 Network Network Data Tier PortX Data Component

Middleware and Distributed Systems. Introduction. Dr. Martin v. Löwis

Middleware and Distributed Systems. Introduction. Dr. Martin v. Löwis Middleware and Distributed Systems Introduction Dr. Martin v. Löwis 14 3. Software Engineering What is Middleware? Bauer et al. Software Engineering, Report on a conference sponsored by the NATO SCIENCE

More information

Software Engineering

Software Engineering Software Engineering Lecture 06: Design an Overview Peter Thiemann University of Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Software Engineering SWT 1 / 35 The Design Phase Programming in

More information

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The

More information

How To Understand The Concept Of A Distributed System

How To Understand The Concept Of A Distributed System Distributed Operating Systems Introduction Ewa Niewiadomska-Szynkiewicz and Adam Kozakiewicz ens@ia.pw.edu.pl, akozakie@ia.pw.edu.pl Institute of Control and Computation Engineering Warsaw University of

More information

Scalability and Classifications

Scalability and Classifications Scalability and Classifications 1 Types of Parallel Computers MIMD and SIMD classifications shared and distributed memory multicomputers distributed shared memory computers 2 Network Topologies static

More information

Cluster, Grid, Cloud Concepts

Cluster, Grid, Cloud Concepts Cluster, Grid, Cloud Concepts Kalaiselvan.K Contents Section 1: Cluster Section 2: Grid Section 3: Cloud Cluster An Overview Need for a Cluster Cluster categorizations A computer cluster is a group of

More information

Introduction to Cloud Computing

Introduction to Cloud Computing Introduction to Cloud Computing Parallel Processing I 15 319, spring 2010 7 th Lecture, Feb 2 nd Majd F. Sakr Lecture Motivation Concurrency and why? Different flavors of parallel computing Get the basic

More information

Safety and security related features in AUTOSAR

Safety and security related features in AUTOSAR Safety and security related features in Dr. Stefan Bunzel Spokesperson (Continental) Co-Authors: S. Fürst, Dr. J. Wagenhuber (BMW), Dr. F. Stappert (Continental) Automotive - Safety & Security 2010 22

More information

Client/Server and Distributed Computing

Client/Server and Distributed Computing Adapted from:operating Systems: Internals and Design Principles, 6/E William Stallings CS571 Fall 2010 Client/Server and Distributed Computing Dave Bremer Otago Polytechnic, N.Z. 2008, Prentice Hall Traditional

More information

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,

More information

Distributed Systems LEEC (2005/06 2º Sem.)

Distributed Systems LEEC (2005/06 2º Sem.) Distributed Systems LEEC (2005/06 2º Sem.) Introduction João Paulo Carvalho Universidade Técnica de Lisboa / Instituto Superior Técnico Outline Definition of a Distributed System Goals Connecting Users

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Principles and characteristics of distributed systems and environments

Principles and characteristics of distributed systems and environments Principles and characteristics of distributed systems and environments Definition of a distributed system Distributed system is a collection of independent computers that appears to its users as a single

More information

A Comparison of Distributed Systems: ChorusOS and Amoeba

A Comparison of Distributed Systems: ChorusOS and Amoeba A Comparison of Distributed Systems: ChorusOS and Amoeba Angelo Bertolli Prepared for MSIT 610 on October 27, 2004 University of Maryland University College Adelphi, Maryland United States of America Abstract.

More information

OPC UA OPC Unified Architecture

OPC UA OPC Unified Architecture OPC Unified Architecture Content 1. Motivation 2. An Overview of Distributed Software Architecture Approaches 2.1 Pro & Contra Middleware 2.2 Message-Based Architectures 2.3 Service-Based Architectures

More information

Distributed Embedded Systems

Distributed Embedded Systems Distributed Embedded Systems Computer Architecture and Operating Systems 2 Content 1. Motivation 2. An Overview of Distributed Software Architecture Approaches 2.1 Pro & Contra Middleware 2.2 Message-Based

More information

Real-Time Operating Systems for MPSoCs

Real-Time Operating Systems for MPSoCs Real-Time Operating Systems for MPSoCs Hiroyuki Tomiyama Graduate School of Information Science Nagoya University http://member.acm.org/~hiroyuki MPSoC 2009 1 Contributors Hiroaki Takada Director and Professor

More information

Objectives. Distributed Databases and Client/Server Architecture. Distributed Database. Data Fragmentation

Objectives. Distributed Databases and Client/Server Architecture. Distributed Database. Data Fragmentation Objectives Distributed Databases and Client/Server Architecture IT354 @ Peter Lo 2005 1 Understand the advantages and disadvantages of distributed databases Know the design issues involved in distributed

More information

Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest

Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest 1. Introduction Few years ago, parallel computers could

More information

Driving force. What future software needs. Potential research topics

Driving force. What future software needs. Potential research topics Improving Software Robustness and Efficiency Driving force Processor core clock speed reach practical limit ~4GHz (power issue) Percentage of sustainable # of active transistors decrease; Increase in #

More information

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters COMP5426 Parallel and Distributed Computing Distributed Systems: Client/Server and Clusters Client/Server Computing Client Client machines are generally single-user workstations providing a user-friendly

More information

Six Strategies for Building High Performance SOA Applications

Six Strategies for Building High Performance SOA Applications Six Strategies for Building High Performance SOA Applications Uwe Breitenbücher, Oliver Kopp, Frank Leymann, Michael Reiter, Dieter Roller, and Tobias Unger University of Stuttgart, Institute of Architecture

More information

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Business-Driven Software Engineering Lecture 3 Foundations of Processes Business-Driven Software Engineering Lecture 3 Foundations of Processes Jochen Küster jku@zurich.ibm.com Agenda Introduction and Background Process Modeling Foundations Activities and Process Models Summary

More information

Does function point analysis change with new approaches to software development? January 2013

Does function point analysis change with new approaches to software development? January 2013 Does function point analysis change with new approaches to software development? January 2013 Scope of this Report The information technology world is constantly changing with newer products, process models

More information

Program Optimization for Multi-core Architectures

Program Optimization for Multi-core Architectures Program Optimization for Multi-core Architectures Sanjeev K Aggarwal (ska@iitk.ac.in) M Chaudhuri (mainak@iitk.ac.in) R Moona (moona@iitk.ac.in) Department of Computer Science and Engineering, IIT Kanpur

More information

Chapter 11 I/O Management and Disk Scheduling

Chapter 11 I/O Management and Disk Scheduling Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 11 I/O Management and Disk Scheduling Dave Bremer Otago Polytechnic, NZ 2008, Prentice Hall I/O Devices Roadmap Organization

More information

AUTOSAR Software Architecture

AUTOSAR Software Architecture AUTOSAR Software Architecture Robert Warschofsky Hasso-Plattner-Institute für Softwaresystemtechnik Abstract. AUTOSAR supports the re-use of software and hardware components of automotive electronic systems.

More information

CGI-based applications for distributed embedded systems for monitoring temperature and humidity

CGI-based applications for distributed embedded systems for monitoring temperature and humidity CGI-based applications for distributed embedded systems for monitoring temperature and humidity Grisha Spasov, Nikolay Kakanakov Abstract: The paper discusses the using of Common Gateway Interface in developing

More information

Candle Plant process automation based on ABB 800xA Distributed Control Systems

Candle Plant process automation based on ABB 800xA Distributed Control Systems Candle Plant process automation based on ABB 800xA Distributed Control Systems Yousef Iskandarani and Karina Nohammer Department of Engineering University of Agder Jon Lilletuns vei 9, 4879 Grimstad Norway

More information

Introduction to grid technologies, parallel and cloud computing. Alaa Osama Allam Saida Saad Mohamed Mohamed Ibrahim Gaber

Introduction to grid technologies, parallel and cloud computing. Alaa Osama Allam Saida Saad Mohamed Mohamed Ibrahim Gaber Introduction to grid technologies, parallel and cloud computing Alaa Osama Allam Saida Saad Mohamed Mohamed Ibrahim Gaber OUTLINES Grid Computing Parallel programming technologies (MPI- Open MP-Cuda )

More information

10 Gbps Line Speed Programmable Hardware for Open Source Network Applications*

10 Gbps Line Speed Programmable Hardware for Open Source Network Applications* 10 Gbps Line Speed Programmable Hardware for Open Source Network Applications* Livio Ricciulli livio@metanetworks.org (408) 399-2284 http://www.metanetworks.org *Supported by the Division of Design Manufacturing

More information

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS What is an operating? A collection of software modules to assist programmers in enhancing efficiency, flexibility, and robustness An Extended Machine from the users

More information

CMSC 611: Advanced Computer Architecture

CMSC 611: Advanced Computer Architecture CMSC 611: Advanced Computer Architecture Parallel Computation Most slides adapted from David Patterson. Some from Mohomed Younis Parallel Computers Definition: A parallel computer is a collection of processing

More information

Deeply Embedded Real-Time Hypervisors for the Automotive Domain Dr. Gary Morgan, ETAS/ESC

Deeply Embedded Real-Time Hypervisors for the Automotive Domain Dr. Gary Morgan, ETAS/ESC Deeply Embedded Real-Time Hypervisors for the Automotive Domain Dr. Gary Morgan, ETAS/ESC 1 Public ETAS/ESC 2014-02-20 ETAS GmbH 2014. All rights reserved, also regarding any disposal, exploitation, reproduction,

More information

Contents. Chapter 1. Introduction

Contents. Chapter 1. Introduction Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual

More information

- An Essential Building Block for Stable and Reliable Compute Clusters

- An Essential Building Block for Stable and Reliable Compute Clusters Ferdinand Geier ParTec Cluster Competence Center GmbH, V. 1.4, March 2005 Cluster Middleware - An Essential Building Block for Stable and Reliable Compute Clusters Contents: Compute Clusters a Real Alternative

More information

Chapter 2 Parallel Architecture, Software And Performance

Chapter 2 Parallel Architecture, Software And Performance Chapter 2 Parallel Architecture, Software And Performance UCSB CS140, T. Yang, 2014 Modified from texbook slides Roadmap Parallel hardware Parallel software Input and output Performance Parallel program

More information

CS555: Distributed Systems [Fall 2015] Dept. Of Computer Science, Colorado State University

CS555: Distributed Systems [Fall 2015] Dept. Of Computer Science, Colorado State University CS 555: DISTRIBUTED SYSTEMS [MESSAGING SYSTEMS] Shrideep Pallickara Computer Science Colorado State University Frequently asked questions from the previous class survey Daisy chain MapReduce jobs? Multiple

More information

OPC COMMUNICATION IN REAL TIME

OPC COMMUNICATION IN REAL TIME OPC COMMUNICATION IN REAL TIME M. Mrosko, L. Mrafko Slovak University of Technology, Faculty of Electrical Engineering and Information Technology Ilkovičova 3, 812 19 Bratislava, Slovak Republic Abstract

More information

User-friendly Configuration of AUTOSAR ECUs with Specialized Software Tools

User-friendly Configuration of AUTOSAR ECUs with Specialized Software Tools User-friendly Configuration of AUTOSAR ECUs with Specialized Software Tools The simple CAN ECU is a thing of the past. Now, a typical ECU utilizes many functions of the AUTOSAR basic software to perform

More information

An Introduction to Parallel Computing/ Programming

An Introduction to Parallel Computing/ Programming An Introduction to Parallel Computing/ Programming Vicky Papadopoulou Lesta Astrophysics and High Performance Computing Research Group (http://ahpc.euc.ac.cy) Dep. of Computer Science and Engineering European

More information

print close Building Blocks

print close Building Blocks print close Machine Design Kim Hartman Wed, 2015-07-15 11:23 Many OEMs strive to maximize plant productivity by allowing machines to perform multiple operations simultaneously. Some of these concurrent

More information

Chapter 3. Database Environment - Objectives. Multi-user DBMS Architectures. Teleprocessing. File-Server

Chapter 3. Database Environment - Objectives. Multi-user DBMS Architectures. Teleprocessing. File-Server Chapter 3 Database Architectures and the Web Transparencies Database Environment - Objectives The meaning of the client server architecture and the advantages of this type of architecture for a DBMS. The

More information

Part I. Introduction

Part I. Introduction Part I. Introduction In the development of modern vehicles, the infotainment system [54] belongs to the innovative area. In comparison to the conventional areas such as the motor, body construction and

More information

Data-Aware Service Choreographies through Transparent Data Exchange

Data-Aware Service Choreographies through Transparent Data Exchange Institute of Architecture of Application Systems Data-Aware Service Choreographies through Transparent Data Exchange Michael Hahn, Dimka Karastoyanova, and Frank Leymann Institute of Architecture of Application

More information

Automotive Software Engineering

Automotive Software Engineering Automotive Software Engineering List of Chapters: 1. Introduction and Overview 1.1 The Driver Vehicle Environment System 1.1.1 Design and Method of Operation of Vehicle Electronic 1.1.2 Electronic of the

More information

Software design (Cont.)

Software design (Cont.) Package diagrams Architectural styles Software design (Cont.) Design modelling technique: Package Diagrams Package: A module containing any number of classes Packages can be nested arbitrarily E.g.: Java

More information

Clusters: Mainstream Technology for CAE

Clusters: Mainstream Technology for CAE Clusters: Mainstream Technology for CAE Alanna Dwyer HPC Division, HP Linux and Clusters Sparked a Revolution in High Performance Computing! Supercomputing performance now affordable and accessible Linux

More information

Intro to GPU computing. Spring 2015 Mark Silberstein, 048661, Technion 1

Intro to GPU computing. Spring 2015 Mark Silberstein, 048661, Technion 1 Intro to GPU computing Spring 2015 Mark Silberstein, 048661, Technion 1 Serial vs. parallel program One instruction at a time Multiple instructions in parallel Spring 2015 Mark Silberstein, 048661, Technion

More information

Client/server is a network architecture that divides functions into client and server

Client/server is a network architecture that divides functions into client and server Page 1 A. Title Client/Server Technology B. Introduction Client/server is a network architecture that divides functions into client and server subsystems, with standard communication methods to facilitate

More information

Service-Oriented Architecture and Software Engineering

Service-Oriented Architecture and Software Engineering -Oriented Architecture and Software Engineering T-86.5165 Seminar on Enterprise Information Systems (2008) 1.4.2008 Characteristics of SOA The software resources in a SOA are represented as services based

More information

Information Systems Analysis and Design CSC340. 2004 John Mylopoulos. Software Architectures -- 1. Information Systems Analysis and Design CSC340

Information Systems Analysis and Design CSC340. 2004 John Mylopoulos. Software Architectures -- 1. Information Systems Analysis and Design CSC340 XIX. Software Architectures Software Architectures UML Packages Client- vs Peer-to-Peer Horizontal Layers and Vertical Partitions 3-Tier and 4-Tier Architectures The Model-View-Controller Architecture

More information

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Client/Server Computing Distributed Processing, Client/Server, and Clusters Client/Server Computing Distributed Processing, Client/Server, and Clusters Chapter 13 Client machines are generally single-user PCs or workstations that provide a highly userfriendly interface to the

More information

SYLLABUS. 1 seminar/laboratory 3.4 Total hours in the curriculum 42 Of which: 3.5 course 28 3.6

SYLLABUS. 1 seminar/laboratory 3.4 Total hours in the curriculum 42 Of which: 3.5 course 28 3.6 SYLLABUS 1. Information regarding the programme 1.1 Higher education Babeş-Bolyai University institution 1.2 Faculty Faculty of Mathematics and Computer Science 1.3 Department Department of Computer Science

More information

Load Balancing MPI Algorithm for High Throughput Applications

Load Balancing MPI Algorithm for High Throughput Applications Load Balancing MPI Algorithm for High Throughput Applications Igor Grudenić, Stjepan Groš, Nikola Bogunović Faculty of Electrical Engineering and, University of Zagreb Unska 3, 10000 Zagreb, Croatia {igor.grudenic,

More information

Operating System Structures

Operating System Structures Operating System Structures Meelis ROOS mroos@ut.ee Institute of Computer Science Tartu University fall 2009 Literature A. S. Tanenbaum. Modern Operating Systems. 2nd ed. Prentice Hall. 2001. G. Nutt.

More information

Chapter 6, The Operating System Machine Level

Chapter 6, The Operating System Machine Level Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General

More information

COSC 6374 Parallel Computation. Parallel I/O (I) I/O basics. Concept of a clusters

COSC 6374 Parallel Computation. Parallel I/O (I) I/O basics. Concept of a clusters COSC 6374 Parallel Computation Parallel I/O (I) I/O basics Spring 2008 Concept of a clusters Processor 1 local disks Compute node message passing network administrative network Memory Processor 2 Network

More information

Software Development for Multiple OEMs Using Tool Configured Middleware for CAN Communication

Software Development for Multiple OEMs Using Tool Configured Middleware for CAN Communication 01PC-422 Software Development for Multiple OEMs Using Tool Configured Middleware for CAN Communication Pascal Jost IAS, University of Stuttgart, Germany Stephan Hoffmann Vector CANtech Inc., USA Copyright

More information

A Management Tool for Component-Based Real-Time Supervision and Control Systems

A Management Tool for Component-Based Real-Time Supervision and Control Systems A Management Tool for Component-Based Real-Time Supervision and Control Systems Sandro Santos Andrade, Raimundo José de Araújo Macêdo Distributed Systems Laboratory (LaSiD) Post-Graduation Program on Mechatronics

More information

Performance evaluation

Performance evaluation Performance evaluation Arquitecturas Avanzadas de Computadores - 2547021 Departamento de Ingeniería Electrónica y de Telecomunicaciones Facultad de Ingeniería 2015-1 Bibliography and evaluation Bibliography

More information

Overview and History of Operating Systems

Overview and History of Operating Systems Overview and History of Operating Systems These are the notes for lecture 1. Please review the Syllabus notes before these. Overview / Historical Developments An Operating System... Sits between hardware

More information

Performance Analysis and Optimization Tool

Performance Analysis and Optimization Tool Performance Analysis and Optimization Tool Andres S. CHARIF-RUBIAL andres.charif@uvsq.fr Performance Analysis Team, University of Versailles http://www.maqao.org Introduction Performance Analysis Develop

More information

The Service Availability Forum Specification for High Availability Middleware

The Service Availability Forum Specification for High Availability Middleware The Availability Forum Specification for High Availability Middleware Timo Jokiaho, Fred Herrmann, Dave Penkler, Manfred Reitenspiess, Louise Moser Availability Forum Timo.Jokiaho@nokia.com, Frederic.Herrmann@sun.com,

More information

Integrating MBD and CBD Workflows for Automotive Control Software

Integrating MBD and CBD Workflows for Automotive Control Software Integrating MBD and CBD Workflows for Automotive Control Software V. B. Singh, Ajinkya Bhave, Dhvinay P V, Dilli Atturu Siemens Industry Software (India) Private Limited., SKCL Central Square - 1, Guindy

More information

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications Chapter 6. CORBA-based Architecture 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications 1 Chapter 6. CORBA-based Architecture Part 6.1 Introduction to

More information

Chapter 16 Distributed Processing, Client/Server, and Clusters

Chapter 16 Distributed Processing, Client/Server, and Clusters Operating Systems: Internals and Design Principles Chapter 16 Distributed Processing, Client/Server, and Clusters Eighth Edition By William Stallings Table 16.1 Client/Server Terminology Applications Programming

More information

Scaling Objectivity Database Performance with Panasas Scale-Out NAS Storage

Scaling Objectivity Database Performance with Panasas Scale-Out NAS Storage White Paper Scaling Objectivity Database Performance with Panasas Scale-Out NAS Storage A Benchmark Report August 211 Background Objectivity/DB uses a powerful distributed processing architecture to manage

More information

System Software and TinyAUTOSAR

System Software and TinyAUTOSAR System Software and TinyAUTOSAR Florian Kluge University of Augsburg, Germany parmerasa Dissemination Event, Barcelona, 2014-09-23 Overview parmerasa System Architecture Library RTE Implementations TinyIMA

More information

Stream Processing on GPUs Using Distributed Multimedia Middleware

Stream Processing on GPUs Using Distributed Multimedia Middleware Stream Processing on GPUs Using Distributed Multimedia Middleware Michael Repplinger 1,2, and Philipp Slusallek 1,2 1 Computer Graphics Lab, Saarland University, Saarbrücken, Germany 2 German Research

More information

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available: Tools Page 1 of 13 ON PROGRAM TRANSLATION A priori, we have two translation mechanisms available: Interpretation Compilation On interpretation: Statements are translated one at a time and executed immediately.

More information

Setting Up an AS4 System

Setting Up an AS4 System INT0697_150625 Setting up an AS4 system V1r0 1 Setting Up an AS4 System 2 Version 1r0 ENTSOG AISBL; Av. de Cortenbergh 100, 1000-Brussels; Tel: +32 2 894 5100; Fax: +32 2 894 5101; info@entsog.eu, www.entsog.eu,

More information

REAL-TIME STREAMING ANALYTICS DATA IN, ACTION OUT

REAL-TIME STREAMING ANALYTICS DATA IN, ACTION OUT REAL-TIME STREAMING ANALYTICS DATA IN, ACTION OUT SPOT THE ODD ONE BEFORE IT IS OUT flexaware.net Streaming analytics: from data to action Do you need actionable insights from various data streams fast?

More information

Middleware. Peter Marwedel TU Dortmund, Informatik 12 Germany. technische universität dortmund. fakultät für informatik informatik 12

Middleware. Peter Marwedel TU Dortmund, Informatik 12 Germany. technische universität dortmund. fakultät für informatik informatik 12 Universität Dortmund 12 Middleware Peter Marwedel TU Dortmund, Informatik 12 Germany Graphics: Alexandra Nolte, Gesine Marwedel, 2003 2010 年 11 月 26 日 These slides use Microsoft clip arts. Microsoft copyright

More information

Base One's Rich Client Architecture

Base One's Rich Client Architecture Base One's Rich Client Architecture Base One provides a unique approach for developing Internet-enabled applications, combining both efficiency and ease of programming through its "Rich Client" architecture.

More information

Seminar Automotive Open Systems Architecture

Seminar Automotive Open Systems Architecture Seminar Automotive Open Systems Architecture Modeling and Development of AUTOSAR Systems using SystemDesk Sebastian Wätzoldt Hasso-Plattner-Institut for IT Systems Engineering at the University of Potsdam

More information

Introduction to Virtual Machines

Introduction to Virtual Machines Introduction to Virtual Machines Introduction Abstraction and interfaces Virtualization Computer system architecture Process virtual machines System virtual machines 1 Abstraction Mechanism to manage complexity

More information

Is a Data Scientist the New Quant? Stuart Kozola MathWorks

Is a Data Scientist the New Quant? Stuart Kozola MathWorks Is a Data Scientist the New Quant? Stuart Kozola MathWorks 2015 The MathWorks, Inc. 1 Facts or information used usually to calculate, analyze, or plan something Information that is produced or stored by

More information

Real-Time Component Software. slide credits: H. Kopetz, P. Puschner

Real-Time Component Software. slide credits: H. Kopetz, P. Puschner Real-Time Component Software slide credits: H. Kopetz, P. Puschner Overview OS services Task Structure Task Interaction Input/Output Error Detection 2 Operating System and Middleware Applica3on So5ware

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2008 Vol. 7 No. 7, September-October 2008 Applications At Your Service Mahesh H. Dodani, IBM,

More information

Introduction to Cloud Computing

Introduction to Cloud Computing Introduction to Cloud Overview and Introduction 15 319, spring 2010 1 st Lecture, Jan 12 th Majd F. Sakr 15-319 Introduction to Cloud Why take 15 319? Because you re cool! Because we re cool! Gain real

More information

Extending Desktop Applications to the Web

Extending Desktop Applications to the Web Extending Desktop Applications to the Web Arno Puder San Francisco State University Computer Science Department 1600 Holloway Avenue San Francisco, CA 94132 arno@sfsu.edu Abstract. Web applications have

More information

BMW Car IT GmbH. AUTOSAR - First Experiences and the Migration Strategy of the BMW Group

BMW Car IT GmbH. AUTOSAR - First Experiences and the Migration Strategy of the BMW Group BMW Car IT GmbH. - First Experiences and the Migration Strategy of the BMW Group Dr. Christian, BMW Car IT Page 2 - First Experiences. Overview. 1. Focus of this talk: Model based development under the

More information

Resource Utilization of Middleware Components in Embedded Systems

Resource Utilization of Middleware Components in Embedded Systems Resource Utilization of Middleware Components in Embedded Systems 3 Introduction System memory, CPU, and network resources are critical to the operation and performance of any software system. These system

More information

OpenACC 2.0 and the PGI Accelerator Compilers

OpenACC 2.0 and the PGI Accelerator Compilers OpenACC 2.0 and the PGI Accelerator Compilers Michael Wolfe The Portland Group michael.wolfe@pgroup.com This presentation discusses the additions made to the OpenACC API in Version 2.0. I will also present

More information

Event-based middleware services

Event-based middleware services 3 Event-based middleware services The term event service has different definitions. In general, an event service connects producers of information and interested consumers. The service acquires events

More information

High Performance Computing

High Performance Computing High Performance Computing Trey Breckenridge Computing Systems Manager Engineering Research Center Mississippi State University What is High Performance Computing? HPC is ill defined and context dependent.

More information

FROM RELATIONAL TO OBJECT DATABASE MANAGEMENT SYSTEMS

FROM RELATIONAL TO OBJECT DATABASE MANAGEMENT SYSTEMS FROM RELATIONAL TO OBJECT DATABASE MANAGEMENT SYSTEMS V. CHRISTOPHIDES Department of Computer Science & Engineering University of California, San Diego ICS - FORTH, Heraklion, Crete 1 I) INTRODUCTION 2

More information

Chapter 1: Introduction. What is an Operating System?

Chapter 1: Introduction. What is an Operating System? Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered System Real -Time Systems Handheld Systems Computing Environments

More information

Advanced Techniques for Mobile Robotics Robot Software Architectures. Wolfram Burgard, Cyrill Stachniss, Kai Arras, Maren Bennewitz

Advanced Techniques for Mobile Robotics Robot Software Architectures. Wolfram Burgard, Cyrill Stachniss, Kai Arras, Maren Bennewitz Advanced Techniques for Mobile Robotics Robot Software Architectures Wolfram Burgard, Cyrill Stachniss, Kai Arras, Maren Bennewitz How to Program a Robot Robots are rather complex systems Often, a large

More information

PARALLEL & CLUSTER COMPUTING CS 6260 PROFESSOR: ELISE DE DONCKER BY: LINA HUSSEIN

PARALLEL & CLUSTER COMPUTING CS 6260 PROFESSOR: ELISE DE DONCKER BY: LINA HUSSEIN 1 PARALLEL & CLUSTER COMPUTING CS 6260 PROFESSOR: ELISE DE DONCKER BY: LINA HUSSEIN Introduction What is cluster computing? Classification of Cluster Computing Technologies: Beowulf cluster Construction

More information

Service Oriented Architectures

Service Oriented Architectures 8 Service Oriented Architectures Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ The context for SOA A bit of history

More information

Operating System Support for Multiprocessor Systems-on-Chip

Operating System Support for Multiprocessor Systems-on-Chip Operating System Support for Multiprocessor Systems-on-Chip Dr. Gabriel marchesan almeida Agenda. Introduction. Adaptive System + Shop Architecture. Preliminary Results. Perspectives & Conclusions Dr.

More information

MCA Standards For Closely Distributed Multicore

MCA Standards For Closely Distributed Multicore MCA Standards For Closely Distributed Multicore Sven Brehmer Multicore Association, cofounder, board member, and MCAPI WG Chair CEO of PolyCore Software 2 Embedded Systems Spans the computing industry

More information

Building an Inexpensive Parallel Computer

Building an Inexpensive Parallel Computer Res. Lett. Inf. Math. Sci., (2000) 1, 113-118 Available online at http://www.massey.ac.nz/~wwiims/rlims/ Building an Inexpensive Parallel Computer Lutz Grosz and Andre Barczak I.I.M.S., Massey University

More information

PLC Support Software at Jefferson Lab

PLC Support Software at Jefferson Lab PLC Support Software at Jefferson Lab Presented by P. Chevtsov ( chevtsov@jlab.org ) - PLC introduction - PLCs at Jefferson Lab - New PLC support software - Conclusions Electromagnetic Relay Encyclopedia

More information

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL This chapter is to introduce the client-server model and its role in the development of distributed network systems. The chapter

More information

Middleware and Distributed Systems. System Models. Dr. Martin v. Löwis. Freitag, 14. Oktober 11

Middleware and Distributed Systems. System Models. Dr. Martin v. Löwis. Freitag, 14. Oktober 11 Middleware and Distributed Systems System Models Dr. Martin v. Löwis System Models (Coulouris et al.) Architectural models of distributed systems placement of parts and relationships between them e.g.

More information

159.735. Final Report. Cluster Scheduling. Submitted by: Priti Lohani 04244354

159.735. Final Report. Cluster Scheduling. Submitted by: Priti Lohani 04244354 159.735 Final Report Cluster Scheduling Submitted by: Priti Lohani 04244354 1 Table of contents: 159.735... 1 Final Report... 1 Cluster Scheduling... 1 Table of contents:... 2 1. Introduction:... 3 1.1

More information