Distributed Real-Time Systems (TI-DRTS) POSA2: Reactor Architectural Pattern
|
|
|
- Joshua Robertson
- 9 years ago
- Views:
Transcription
1 Distributed Real-Time Systems (TI-DRTS) POSA2: Reactor Architectural Pattern Version:
2 Abstract The Reactor architectural pattern allows event-driven applications to demultiplex & dispatch service requests that are delivered to an application from one or more clients Slide 2
3 Example a Distributed Logging Service TCP communication from clients to a logging server Slide 3
4 Context An event-driven application that receives multiple service requests simultaneously, but processes them synchronously and serially Slide 4
5 Solution Synchronously wait for the arrival of indication events on one or more event sources (e.g. connected socket handles) Demultiplex and dispatch the events to services that process them Perform the application specific functionality in service handlers Slide 5
6 Reactor based Framework Reactor: Event loop Framework Architecture ADTs Strings Files Locks INVOKES Slide 6
7 Reactor Pattern Structure (1) Handle owns 1 1 EventHandler +handle_event() +get_handle() Abstract base class (= interface) Concrete EventHandlerA handle_event() get_handle() Concrete EventHandlerB handle_event() get_handle() Slide 7
8 Reactor Pattern Structure (2) Application «creates» Reactor 1 dispatches * EventHandler +handle_events() +register_handler() +remove_handler() 1 * Handle owns 1 1 +handle_event() +get_handle() Concrete EventHandlerA handle_event() get_handle() Concrete EventHandlerB handle_event() get_handle() Slide 8
9 Reactor Pattern Structure (3) Application «creates» Reactor +handle_events() +register_handler() +remove_handler() Synchronous Event Demultiplexer +select() «uses» * dispatches Handle * 1 owns * 1 Concrete EventHandlerA handle_event() get_handle() EventHandler +handle_event() +get_handle() Concrete EventHandlerB handle_event() get_handle() Slide 9
10 Reactor Sequence Diagram : Main Program : Concrete Event Handler : Reactor : Synchronous Event Demultiplexer 1. Initialize phase Con. Event Handler Events register_handler() get_handle() Handle 2. Event handling phase handle_events() handle_event() service() Handles Handles select() event Observations Note inversion of control Also note how long-running event handlers can degrade the QoS since callbacks steal the reactor s thread! Slide 10
11 Implementation Steps 1. Define the event handler interface 2. Define the reactor interface 3. Implement the reactor interface 4. Determine the number of reactors needed in an application 5. Implement the concrete event handlers Slide 11
12 1. Define the Event Handler Interface Single Method Dispatch (Imp. 1.2) class Event_Handler { public: virtual void handle_event(handle handle, Event_Type et) = 0; virtual HANDLE get_handle() const = 0; }; typedef unsigned int Event_Type enum { READ_EVENT = 01, // ACCEPT_EVENT alias READ_EVENT ACCEPT_EVENT= 01, WRITE_EVENT= 02, TIMEOUT_EVENT= 04 // etc. }; Slide 12
13 1. Define the Event Handler Interface Multi Method Dispatch (Imp. 1.2) class Event_Handler { public: virtual void handle_input(handle handle) = 0; virtual void handle_output(handle handle) = 0; virtual void handle_timeout(const Time_Value &) = 0; virtual void handle_close(handle handle, Event_Type et) = 0; virtual HANDLE get_handle() const = 0; }; Slide 13
14 2. Define the Reactor Interface class Reactor { public: virtual void register_handler(event_handler *eh, Event_Type et) = 0; virtual void register_handler(handle h, Event_Handler *eh, Event_Type et) = 0; virtual void remove_handler(event_handler *eh, Event_Type et) = 0; virtual void remove_handler(handle h, Event_Type et) const = 0; // Entry point into the reactive event loop void handle_events(time_value *timeout =0); // Define a singleton access point static Reactor *instance(); private: Reactor_Implementation *reactor_impl_; // uses the GoF Bridge pattern }; Slide 14
15 Reactor Implementation (Bridge) Reactor +register_handler( ) reactor_impl_ Reactor Implementation +register_handler( ) reactor_impl_->register_handler(..) Select_Reactor_ Implementation void Select_Reactor_Implementation::register_handler(Event_handler *eh, Event_type et) { HANDLE handle= eh->get_handle(); // } Slide 15
16 Bridge Design Pattern (GoF) Client Abstraction operation() imp Implementor operationimp() imp->operationimp() Refined Abstraction Concrete ImplementorA operationimp() Concrete ImplementorB operationimp() Slide 16
17 3.2 Choose a Synchronous Demultiplexer Mechanism The synchronous event demultiplexer, as well as the handles and handle sets, are often existing operating system mechanisms (e.g. select() ) Operating System Demux Mechanisms: select(): Unix, Win32, VxWork poll(): Unix, System V, release 4. WaitForMultipleObjects(): Win32 Slide 17
18 Select as Demultiplexer Mechanism int select(u_int max_handle_plus_1, fd_set *read_fds, fd_set *write_fds, fd_set *except_fds, timeval *timeout); The select() function examines the three file descriptor set (fd_set) to see if any of their handles are ready for reading, writing or have an exceptional condition or check for a timeout Slide 18
19 Data Structure fd_set: Example #define FD_SETSIZE 64 typedef struct fd_set { u_int fd_count; /* how many are SET? */ SOCKET fd_array[fd_setsize]; /* an array of SOCKETs */ } fd_set; Slide 19
20 3.3 Implement a Demultiplexing Table Unix implementation example, where handle values are contiguous ints class Demux_Table { public: // Convert <Tuple> array to <fd_set>s void convert_to_fd_sets(fd_set &read_fds, fd_set &write_fds, fd_set &except_fds); struct Tuple { // Pointer to <Event_Handler> that process // the indication event arriving on the handle Event_Handler *event_handler_; // Bit-mask that tracks which types of indication events // <Event_Handler> is registered for Event_Type event_type_; } Tuple table_[fd_setsize]; // FD_SETSIZE macro defined }; // in <sys/socket.h> Slide 20
21 3.4 Define the Concrete Reactor Implementation (Unix example) class Select_Reactor_Implementation : public Reactor_Implementation { public: void handle_events(time_value *timeout = 0) { fd_set read_fds, write_fds, except_fds; demux_table_.convert_to_fd_sets(read_fds,write_fds, except_fds); HANDLE max_handle = MAX_NO_OF HANDLES; int result = select( max_handle+1, &read_fds, &write_fds, &except_fds, timeout); if (result <=0) throw // handle error or timeout cases here for (HANDLE h=0; h <=max_handle; h++) { if ( FD_ISSET(&read_fds, h) ) demux_table_.table_[h].event_handler_-> handle_event(h, READ_EVENT); // perform the same for WRITE_EVENT and EXCEPT_EVENTs } }; private: Demux_table demux_table_; } Slide 21
22 Logging Server Example (1) Client 4. connect() :Logging Acceptor 1. register_handler() :Reactor 2. handle_events() 3. select() Logging Server 6. accept() 7. create() 5. handle_ event() a:logging Handler 8. register_handler() Scenario: Client connects to the logging server Slide 22
23 Logging Server Example (2) a :Logging Handler 3. recv() 4. write() Logging Server Client 1. send() 2. handle_event() :Reactor 5. return b :Logging Handler Scenario: client sends a logging record Slide 23
24 Logging Server main program const u_short PORT = 10000; // logging server port number int main() { INET_Addr addr(port); // Logging server address // Initialize logging server endpoint and register // with reactor singleton Logging_Acceptor la(addr, Reactor::instance() ); } // Event loop that processes client connection requests // and log records reactively while ( 1 ) Reactor::instance()->handle_events(); Slide 24
25 Reactor Pattern - Benefits Separation of concerns This pattern decouples application-independent demuxing & dispatching mechanisms from application-specific hook method functionality Modularity, reusability, & configurability This pattern separates event-driven application functionality into several components, which enables the configuration of event handler components that are loosely integrated via a reactor Portability By decoupling the reactor s interface from the lower-level OS synchronous event demuxing functions used in its implementation, the Reactor pattern improves portability Coarse-grained concurrency control This pattern serializes the invocation of event handlers at the level of event demuxing & dispatching within an application process or thread Slide 25
26 Reactor Pattern - Liabilities Restricted applicability This pattern can be applied efficiently only if the OS supports synchronous event demuxing on handle sets Non-pre-emptive In a single-threaded application, concrete event handlers that borrow the thread of their reactor can run to completion & prevent the reactor from dispatching other event handlers Complexity of debugging & testing It is hard to debug applications structured using this pattern due to its inverted flow of control, which oscillates between the framework infrastructure & the method call-backs on application-specific event handlers Slide 26
27 Relation to other POSA2 Patterns Slide 27
28 See Also Reactor is related to: Observer (GoF), Publisher-Subscriber (POSA1) where all dependent are informed In the Reactor a single handler is informed Chain of Responsibility (GoF) Searches the chain to locate the first matching handler The Reactor associates a specific event handler with a particular source of events Proactor The Reactor is a synchronous variant of the asynchronous Proactor pattern Slide 28
29 Logging Server - Example Repetition see slides 24-26, where two scenarios and the main server program are shown The following slides will show the two concrete Event_Handler subclasses: Logging_Acceptor accepts a new client connection Logging_Handler receives client log records Slide 29
30 Application Logging Server Example Reactor handle_events() register_handler() remove_handler() 1 1 * dispatches Handle * owns 1 1 Event_Handler handle_event() get_handle() Logging_ Acceptor handle_event() get_handle() Logging_ Handler handle_event() get_handle() Slide 30
31 Logging_Acceptor class (1) class Logging_Acceptor : public Event_Handler { public: Logging_Acceptor(const INET_Addr &addr, Reactor *reactor) : acceptor_(addr), reactor_(reactor) { reactor_->register_handler(this, ACCEPT_EVENT); } virtual void handle_event(handle, Event_Type event_type) { if (event_type == ACCEPT_EVENT) { SOCK_Stream client_connection; acceptor_.accept(client_connection); } // Create a new <Logging_Handler> Logging_Handler *handler = new Logging_Handler( client_connection, reactor_); } Slide 31
32 Logging_Acceptor class (2) class Logging_Acceptor : public Event_Handler { public: // continued from previous slide virtual HANDLE get_handle() const { return acceptor_.get_handle(); } private: // Socket factory that accepts client connections SOCK_Acceptor acceptor_; }; // Cached <Reactor> Reactor *reactor_; Slide 32
33 Logging_Handler class (1) class Logging_Handler : public Event_Handler { public: Logging_Handler(const SOCK_Stream &stream, Reactor *reactor) : peer_stream_(stream), reactor_(reactor) { reactor_->register_handler(this, READ_EVENT); } virtual void handle_event(handle, Event_Type event_type) { if (event_type == READ_EVENT) { Log_Record log_record; int result= peer_stream_.recv(&log_record, sizeof log_record); if (result!= STREAM_ERROR) log_record.write(stdout); else { reactor_->remove_handler(this,read_event); delete this; // Deallocate ourselves! } } Slide 33
34 Logging_Handler class (2) class Logging_Handler : public Event_Handler { public: // continued from previous slide virtual HANDLE get_handle() const { return peer_stream_.get_handle(); } private: // Receives logging records from a connected client SOCK_Stream peer_stream_; Reactor reactor_; } Slide 34
Reactor. An Object Behavioral Pattern for Demultiplexing and Dispatching Handles for Synchronous Events. Douglas C. Schmidt
Reactor An Object Behavioral Pattern for Demultiplexing and Dispatching Handles for Synchronous Events Douglas C. Schmidt [email protected] Department of Computer Science Washington University, St.
Distributed Real-Time Systems (TI-DRTS) POSA2: Acceptor/Connector Design Pattern
Distributed Real-Time Systems (TI-DRTS) POSA2: Acceptor/Connector Design Pattern Version: 7.09.2009 Abstract The Acceptor-Connector design pattern decouples the connection and initialization of cooperating
Introduction to Patterns and Frameworks
Patterns and Frameworks Introduction to Patterns and Frameworks Professor Department of EECS [email protected] Vanderbilt University www.cs.wustl.edu/schmidt/ (615) 343-8197 Motivation for Patterns
TCP/IP - Socket Programming
TCP/IP - Socket Programming [email protected] Jim Binkley 1 sockets - overview sockets simple client - server model look at tcpclient/tcpserver.c look at udpclient/udpserver.c tcp/udp contrasts normal master/slave
Applying a Pattern Language to Develop Application-level Gateways
Applying a Pattern Language to Develop Application-level Gateways Douglas C. Schmidt [email protected] http://www.ece.uci.edu/schmidt/ Department of Electrical & Computer Science University of California,
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes) John Ousterhout Sun Microsystems Laboratories [email protected] http://www.sunlabs.com/~ouster Introduction Threads: Grew up in OS world (processes).
Developing Flexible and High-performance Web Servers with Frameworks and Patterns
Developing Flexible and High-performance Web Servers with Frameworks and Patterns Douglas C. Schmidt [email protected] James C. Hu [email protected] Department of Computer Science Washington University
Web Server Architectures
Web Server Architectures CS 4244: Internet Programming Dr. Eli Tilevich Based on Flash: An Efficient and Portable Web Server, Vivek S. Pai, Peter Druschel, and Willy Zwaenepoel, 1999 Annual Usenix Technical
Socket Programming. Request. Reply. Figure 1. Client-Server paradigm
Socket Programming 1. Introduction In the classic client-server model, the client sends out requests to the server, and the server does some processing with the request(s) received, and returns a reply
Design Patterns in C++
Design Patterns in C++ Concurrency Patterns Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa May 4, 2011 G. Lipari (Scuola Superiore Sant Anna) Concurrency Patterns May 4,
Tutorial on Socket Programming
Tutorial on Socket Programming Computer Networks - CSC 458 Department of Computer Science Seyed Hossein Mortazavi (Slides are mainly from Monia Ghobadi, and Amin Tootoonchian, ) 1 Outline Client- server
Applying Patterns and Frameworks to Develop Object-Oriented Communication Software
Applying Patterns and Frameworks to Develop Object-Oriented Communication Software Douglas C. Schmidt [email protected] Department of Computer Science Washington University, St. Louis, MO 63130 This
Session NM059. TCP/IP Programming on VMS. Geoff Bryant Process Software
Session NM059 TCP/IP Programming on VMS Geoff Bryant Process Software Course Roadmap Slide 160 NM055 (11:00-12:00) Important Terms and Concepts TCP/IP and Client/Server Model Sockets and TLI Client/Server
3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version
Version 3.5 JEFFERSON LAB Data Acquisition Group cmsg Developer s Guide J E F F E R S O N L A B D A T A A C Q U I S I T I O N G R O U P cmsg Developer s Guide Elliott Wolin [email protected] Carl Timmer [email protected]
ELEN 602: Computer Communications and Networking. Socket Programming Basics
1 ELEN 602: Computer Communications and Networking Socket Programming Basics A. Introduction In the classic client-server model, the client sends out requests to the server, and the server does some processing
Active Object. An Object Behavioral Pattern for Concurrent Programming. R. Greg Lavender Douglas C. Schmidt
Active Object An Object Behavioral Pattern for Concurrent Programming R. Greg Lavender Douglas C. Schmidt [email protected] [email protected] ISODE Consortium Inc. Department of Computer Science
Lecture 17. Process Management. Process Management. Process Management. Inter-Process Communication. Inter-Process Communication
Process Management Lecture 17 Review February 25, 2005 Program? Process? Thread? Disadvantages, advantages of threads? How do you identify processes? How do you fork a child process, the child process
Design Document. Offline Charging Server (Offline CS ) Version 1.0. - i -
Design Document Offline Charging Server (Offline CS ) Version 1.0 - i - Document Scope Objective The information provided in this document specifies the design details of Operations of Offline Charging
Introduction to Socket Programming Part I : TCP Clients, Servers; Host information
Introduction to Socket Programming Part I : TCP Clients, Servers; Host information Keywords: sockets, client-server, network programming-socket functions, OSI layering, byte-ordering Outline: 1.) Introduction
Socket Programming. Srinidhi Varadarajan
Socket Programming Srinidhi Varadarajan Client-server paradigm Client: initiates contact with server ( speaks first ) typically requests service from server, for Web, client is implemented in browser;
Applying a Pattern Language to Develop Extensible ORB Middleware
Applying a Pattern Language to Develop Extensible ORB Middleware Douglas C. Schmidt [email protected] Electrical & Computer Engineering Dept. University of California, Irvine, USA Chris Cleeland cleeland
Introduction Object-Oriented Network Programming CORBA addresses two challenges of developing distributed systems: 1. Making distributed application development no more dicult than developing centralized
ICT SEcurity BASICS. Course: Software Defined Radio. Angelo Liguori. SP4TE lab. [email protected]
Course: Software Defined Radio ICT SEcurity BASICS Angelo Liguori [email protected] SP4TE lab 1 Simple Timing Covert Channel Unintended information about data gets leaked through observing the
Operating System Manual. Realtime Communication System for netx. Kernel API Function Reference. www.hilscher.com.
Operating System Manual Realtime Communication System for netx Kernel API Function Reference Language: English www.hilscher.com rcx - Kernel API Function Reference 2 Copyright Information Copyright 2005-2007
Network Programming. Writing network and internet applications.
Network Programming Writing network and internet applications. Overview > Network programming basics > Sockets > The TCP Server Framework > The Reactor Framework > High Level Protocols: HTTP, FTP and E-Mail
How To Write A Microsoft Powerbook For An Microsoft Acheive (Programming) (Programmer) (Orchestraic) (For Microsoft) (Permanent) (Powerbook) (Operations) (Memory)
The ADAPTIVE Communication Environment An Object-Oriented Network Programming Toolkit for Developing Communication Software Earlier versions of this paper appeared in the 11 th and 12 th Sun User Group
Infrastructure that supports (distributed) componentbased application development
Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive
SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2
SMTP-32 Library Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows Version 5.2 Copyright 1994-2003 by Distinct Corporation All rights reserved Table of Contents 1 Overview... 5 1.1
Writing a C-based Client/Server
Working the Socket Writing a C-based Client/Server Consider for a moment having the massive power of different computers all simultaneously trying to compute a problem for you -- and still being legal!
Unix Network Programming
Introduction to Computer Networks Polly Huang EE NTU http://cc.ee.ntu.edu.tw/~phuang [email protected] Unix Network Programming The socket struct and data handling System calls Based on Beej's Guide
Chapter 3. Internet Applications and Network Programming
Chapter 3 Internet Applications and Network Programming 1 Introduction The Internet offers users a rich diversity of services none of the services is part of the underlying communication infrastructure
Integrating the Internet into Your Measurement System. DataSocket Technical Overview
Integrating the Internet into Your Measurement System DataSocket Technical Overview Introduction The Internet continues to become more integrated into our daily lives. This is particularly true for scientists
UI Performance Monitoring
UI Performance Monitoring SWT API to Monitor UI Delays Terry Parker, Google Contents 1. 2. 3. 4. 5. 6. 7. Definition Motivation The new API Monitoring UI Delays Diagnosing UI Delays Problems Found! Next
µtasker Document FTP Client
Embedding it better... µtasker Document FTP Client utaskerftp_client.doc/1.01 Copyright 2012 M.J.Butcher Consulting Table of Contents 1. Introduction...3 2. FTP Log-In...4 3. FTP Operation Modes...4 4.
CORBAservices. Naming. Part of the CORBA Naming Service Interface in IDL. CORBA Naming Service
CORBAservices CORBAservices are general purpose and application independent services. They resemble and enhance services commonly provided by an operating system: Service Collection Query Concurrency Transaction
MatrixSSL Porting Guide
MatrixSSL Porting Guide Electronic versions are uncontrolled unless directly accessed from the QA Document Control system. Printed version are uncontrolled except when stamped with VALID COPY in red. External
Socket Programming. Kameswari Chebrolu Dept. of Electrical Engineering, IIT Kanpur
Socket Programming Kameswari Chebrolu Dept. of Electrical Engineering, IIT Kanpur Background Demultiplexing Convert host-to-host packet delivery service into a process-to-process communication channel
Network programming, DNS, and NAT. Copyright University of Illinois CS 241 Staff 1
Network programming, DNS, and NAT Copyright University of Illinois CS 241 Staff 1 Today Network programming tips Domain name system Network Address Translation Bonus slides (for your reference) Timers
Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying
The POSIX Socket API
The POSIX Giovanni Agosta Piattaforme Software per la Rete Modulo 2 G. Agosta The POSIX Outline Sockets & TCP Connections 1 Sockets & TCP Connections 2 3 4 G. Agosta The POSIX TCP Connections Preliminaries
SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems
SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE
Channel Access Client Programming. Andrew Johnson Computer Scientist, AES-SSG
Channel Access Client Programming Andrew Johnson Computer Scientist, AES-SSG Channel Access The main programming interface for writing Channel Access clients is the library that comes with EPICS base Written
3F6 - Software Engineering and Design. Handout 10 Distributed Systems I With Markup. Steve Young
3F6 - Software Engineering and Design Handout 10 Distributed Systems I With Markup Steve Young Contents 1. Distributed systems 2. Client-server architecture 3. CORBA 4. Interface Definition Language (IDL)
Virtuozzo Virtualization SDK
Virtuozzo Virtualization SDK Programmer's Guide February 18, 2016 Copyright 1999-2016 Parallels IP Holdings GmbH and its affiliates. All rights reserved. Parallels IP Holdings GmbH Vordergasse 59 8200
Socket Programming in C/C++
September 24, 2004 Contact Info Mani Radhakrishnan Office 4224 SEL email mradhakr @ cs. uic. edu Office Hours Tuesday 1-4 PM Introduction Sockets are a protocol independent method of creating a connection
Stock Trader System. Architecture Description
Stock Trader System Architecture Description Michael Stevens [email protected] http://www.mestevens.com Table of Contents 1. Purpose of Document 2 2. System Synopsis 2 3. Current Situation and Environment
The Command Dispatcher Pattern
The Command Dispatcher Pattern Can also be called: Command Evaluator Pattern. Benoit Dupire and Eduardo B Fernandez {[email protected], [email protected]} Department of Computer Science and Engineering.
NS3 Lab 1 TCP/IP Network Programming in C
NS3 Lab 1 TCP/IP Network Programming in C Dr Colin Perkins School of Computing Science University of Glasgow http://csperkins.org/teaching/ns3/ 13/14 January 2015 Introduction The laboratory exercises
System calls. Problem: How to access resources other than CPU
System calls Problem: How to access resources other than CPU - Disk, network, terminal, other processes - CPU prohibits instructions that would access devices - Only privileged OS kernel can access devices
C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.
Koln C#5.0 IN A NUTSHELL Fifth Edition Joseph Albahari and Ben Albahari O'REILLY Beijing Cambridge Farnham Sebastopol Tokyo Table of Contents Preface xi 1. Introducing C# and the.net Framework 1 Object
Communication Networks. Introduction & Socket Programming Yuval Rochman
Communication Networks Introduction & Socket Programming Yuval Rochman Administration Staff Lecturer: Prof. Hanoch Levy hanoch AT cs tau Office hours: by appointment Teaching Assistant: Yuval Rochman yuvalroc
Specific Simple Network Management Tools
Specific Simple Network Management Tools Jürgen Schönwälder University of Osnabrück Albrechtstr. 28 49069 Osnabrück, Germany Tel.: +49 541 969 2483 Email: Web:
MatrixSSL Developer s Guide
MatrixSSL Developer s Guide This document discusses developing with MatrixSSL. It includes instructions on integrating MatrixSSL into an application and a description of the configurable options for modifying
Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks
Designing a Home Alarm using the UML And implementing it using C++ and VxWorks M.W.Richardson I-Logix UK Ltd. [email protected] This article describes how a simple home alarm can be designed using the UML
CORBA Programming with TAOX11. The C++11 CORBA Implementation
CORBA Programming with TAOX11 The C++11 CORBA Implementation TAOX11: the CORBA Implementation by Remedy IT TAOX11 simplifies development of CORBA based applications IDL to C++11 language mapping is easy
GTask Developing asynchronous applications for multi-core efficiency
GTask Developing asynchronous applications for multi-core efficiency February 2009 SCALE 7x Los Angeles Christian Hergert What Is It? GTask is a mini framework to help you write asynchronous code. Dependencies
Spring @Async. Dragan Juričić, PBZ May 2015
Spring @Async Dragan Juričić, PBZ May 2015 Topics Concept of thread pools Servlet 3 async configuration Task Execution and Scheduling Servlet 3 - asynchronous request processing Benefits and downsides
Operating Systems Design 16. Networking: Sockets
Operating Systems Design 16. Networking: Sockets Paul Krzyzanowski [email protected] 1 Sockets IP lets us send data between machines TCP & UDP are transport layer protocols Contain port number to identify
Monitor Object. An Object Behavioral Pattern for Concurrent Programming. Douglas C. Schmidt
Monitor Object An Object Behavioral Pattern for Concurrent Programming Douglas C. Schmidt [email protected] Department of Computer Science Washington University, St. Louis 1 Intent The Monitor Object
Let s Chat! (Part 1)
Let s Chat! (Part 1) José Gutíerrez de la Concha, Software Developer Michi Henning, Chief Scientist In this series of articles, we will guide you through the process of designing and implementing a complete
Programming in C# with Microsoft Visual Studio 2010
Introducción a la Programación Web con C# en Visual Studio 2010 Curso: Introduction to Web development Programming in C# with Microsoft Visual Studio 2010 Introduction to Web Development with Microsoft
C# Cookbook. Stephen Teilhet andjay Hilyard. O'REILLY 8 Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo '"J""'
C# Cookbook '"J""' Stephen Teilhet andjay Hilyard O'REILLY 8 Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo Tableof Contents Preface xv 1. Numbers 1 1.1 Determining Approximate Equality Between
Introduction to LabVIEW Design Patterns
Introduction to LabVIEW Design Patterns What is a Design Pattern? Definition: A well-established solution to a common problem. Why Should I Use One? Save time and improve the longevity and readability
EXAM - 70-518. PRO:Design & Develop Windows Apps Using MS.NET Frmwk 4. Buy Full Product. http://www.examskey.com/70-518.html
Microsoft EXAM - 70-518 PRO:Design & Develop Windows Apps Using MS.NET Frmwk 4 Buy Full Product http://www.examskey.com/70-518.html Examskey Microsoft 70-518 exam demo product is here for you to test the
09336863931 : provid.ir
provid.ir 09336863931 : NET Architecture Core CSharp o Variable o Variable Scope o Type Inference o Namespaces o Preprocessor Directives Statements and Flow of Execution o If Statement o Switch Statement
q for Gods Whitepaper Series (Edition 7) Common Design Principles for kdb+ Gateways
Series (Edition 7) Common Design Principles for kdb+ Gateways May 2013 Author: Michael McClintock joined First Derivatives in 2009 and has worked as a consultant on a range of kdb+ applications for hedge
Application Development with TCP/IP. Brian S. Mitchell Drexel University
Application Development with TCP/IP Brian S. Mitchell Drexel University Agenda TCP/IP Application Development Environment Client/Server Computing with TCP/IP Sockets Port Numbers The TCP/IP Application
Intel EP80579 Software for Security Applications on Intel QuickAssist Technology Cryptographic API Reference
Intel EP80579 Software for Security Applications on Intel QuickAssist Technology Cryptographic API Reference Automatically generated from sources, May 19, 2009. Reference Number: 320184, Revision -003
IT304 Experiment 2 To understand the concept of IPC, Pipes, Signals, Multi-Threading and Multiprocessing in the context of networking.
Aim: IT304 Experiment 2 To understand the concept of IPC, Pipes, Signals, Multi-Threading and Multiprocessing in the context of networking. Other Objective of this lab session is to learn how to do socket
Network Programming TDC 561
Network Programming TDC 561 Lecture # 1 Dr. Ehab S. Al-Shaer School of Computer Science & Telecommunication DePaul University Chicago, IL 1 Network Programming Goals of this Course: Studying, evaluating
Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY. 6.828 Operating System Engineering: Fall 2005
Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.828 Operating System Engineering: Fall 2005 Quiz II Solutions Average 84, median 83, standard deviation
Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No. # 26 Real - Time POSIX. (Contd.) Ok Good morning, so let us get
Operating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015
Operating Systems 05. Threads Paul Krzyzanowski Rutgers University Spring 2015 February 9, 2015 2014-2015 Paul Krzyzanowski 1 Thread of execution Single sequence of instructions Pointed to by the program
MPLAB Harmony System Service Libraries Help
MPLAB Harmony System Service Libraries Help MPLAB Harmony Integrated Software Framework v1.08 All rights reserved. This section provides descriptions of the System Service libraries that are available
Using NSM for Event Notification. Abstract. with DM3, R4, and Win32 Devices
Using NSM for Event Notification with DM3, R4, and Win32 Devices Abstract This document explains why Native Synchronization Methods (NSM) is the best solution for controlling synchronization of DM3, R4,
sndio OpenBSD audio & MIDI framework for music and desktop applications
sndio OpenBSD & MIDI framework for music and desktop applications Alexandre Ratchov [email protected] AsiaBSDCon 2010 13 march 2010 A. Ratchov (AsiaBSDCon) OpenBSD and MIDI subsystem 13 march 2010 1 / 31
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
Data Communication & Networks G22.2262-001
Data Communication & Networks G22.2262-001 Session 10 - Main Theme Java Sockets Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences 1 Agenda
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
UNIX Sockets. COS 461 Precept 1
UNIX Sockets COS 461 Precept 1 Clients and Servers Client program Running on end host Requests service E.g., Web browser Server program Running on end host Provides service E.g., Web server GET /index.html
Thread-Specific Storage for C/C++ An Object Behavioral Pattern for Accessing per-thread State Efficiently
Thread-Specific Storage for C/C++ An Object Behavioral Pattern for Accessing per-thread State Efficiently Douglas C. Schmidt Nat Pryce Timothy H. Harrison fschmidt, [email protected] [email protected]
LabVIEW Advanced Programming Techniques
LabVIEW Advanced Programming Techniques SECOND EDITION Rick Bitter Motorola, Schaumburg, Illinois Taqi Mohiuddin MindspeedTechnologies, Lisle, Illinois Matt Nawrocki Motorola, Schaumburg, Illinois @ CRC
Freescale MQX USB Device User Guide
Freescale MQX USB Device User Guide MQXUSBDEVUG Rev. 4 02/2014 How to Reach Us: Home Page: freescale.com Web Support: freescale.com/support Information in this document is provided solely to enable system
CS222: Systems Programming
CS222: Systems Programming The Basics January 24, 2008 A Designated Center of Academic Excellence in Information Assurance Education by the National Security Agency Agenda Operating System Essentials Windows
Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University
Sections 9.1 & 9.2 Corba & DCOM John P. Daigle Department of Computer Science Georgia State University 05.16.06 Outline 1 Introduction 2 CORBA Overview Communication Processes Naming Other Design Concerns
