Distributed Real-Time Systems (TI-DRTS) POSA2: Acceptor/Connector Design Pattern
|
|
|
- Ariel Newman
- 9 years ago
- Views:
Transcription
1 Distributed Real-Time Systems (TI-DRTS) POSA2: Acceptor/Connector Design Pattern Version:
2 Abstract The Acceptor-Connector design pattern decouples the connection and initialization of cooperating peer services in a networked system from the processing performed by the peer services after they are connected and initialized Slide 2
3 Context A networked system or application: in which connection-oriented protocols are used to communicate between peer services connected via transport endpoints Slide 3
4 Problem Applications in connection-oriented networked systems often contains a significant amount of code that establishes connections and initializes services This configuration code is largely independent of the service processing code tightly coupling the configuration code with the service code is undesirable Slide 4
5 Solution Decouple the connection and initialization of peer services from the processing these services perform Application services are encapsulated in Service Handlers Connect and initialize peer service handlers using two factories: Acceptor and Connector Both factories cooperate to create a full association between two peer service handlers Slide 5
6 Acceptor/Connector Structure (1) <<notifies>> Dispatcher <<notifies>> +select() +handle_events() +register_handler() +remove_handler() * Connector <<notifies>> * Service Handler Acceptor * Connector() connect() complete() handle_event () peer_stream_ open() handle_event () set_handle() peer_acceptor_ Acceptor() accept() handle_event () Concrete Connector Concrete Service Handler A Concrete Service Handler B Concrete Acceptor Slide 6
7 Acceptor/Connector Structure (2) <<notifies>> * 1 Connector Connector() connect() complete() handle_event () uses * uses owns uses * +register_handler() * Transport Handle 1 <<notifies>> Dispatcher +select() +handle_events() +remove_handler() * Service Handler peer_stream_ open() handle_event () set_handle() Transport Handle 1 owns uses <<creates>> <<notifies>> Transport Handle 1 * 1 owns Acceptor peer_acceptor_ Acceptor() accept() handle_event () * <<activate>> <<activate>> Concrete Connector * 1 Concrete Service Handler A 1 Concrete Service Handler B Concrete Acceptor Slide 7
8 Acceptor Dynamics : Application : Acceptor : Dispatcher 1. Acceptor open() Acceptor accept() Handle1 ACCEPT_ EVENT register_handler() handle_events() Event : Handle2 2. : Service Handler Handle2 Handle2 3. open() Service Handler Events register_handler() handle_event() service() Event 1. Passive-mode endpoint initialize phase 2. Service handler initialize phase 3. Service processing phase Slide 8
9 Motivation for Synchrony If connection latency is negligible e.g., connecting with a server on the same host via a loopback device If multiple threads of control are available and it is efficient to use a thread-per-connection to connect each service handler synchronously If the services must be initialized in a fixed order and the client can t perform useful work until all connections are established Slide 9
10 Synchronous Connector Dynamics : Application : Connector : Service : Dispatcher Handler 1. Service Handler Addr connect() get_handle() Handle 2. Wait for Connection event open() Service Handler Handle register_handler() Events handle_events() handle_event() Event 1. Sync connection initiation phase 2. Service handler initialize phase 3. Service processing phase 3. service() Slide 10
11 Motivation for Asynchrony If client is establishing connections over high latency links If client is a single-threaded application If client is initializing many peers that can be connected in an arbitrary order Slide 11
12 Asynchronous Connector Dynamics : Application : Connector : Service : Dispatcher Handler 1. Service Handler Addr connect() get_handle() Handle Handle register_handler() Connector CONNECT EVENT complete() handle_events() Event 2. open() remove_handler() register_handler() Service Handler Handle Events Event handle_event() 3. service() 1. Async connection initiation phase 2. Service handler initialize phase 3. Service processing phase Slide 12
13 Three Layers <<notifies>> Dispatcher <<notifies>> uses uses * register_handler() * Transport Handle select() handle_events() remove_handler() Transport Handle uses * Transport Handle * Connector uses <<notifies>> * Service Handler <<creates>> owns Acceptor * Connector() connect() complete() handle_event () owns peer_stream_ open() handle_event () set_handle() owns peer_acceptor_ Acceptor() Accept() handle_event () <<activate>> <<activate>> Concrete Connector * Concrete Service Handler A Concrete Service Handler B Concrete Acceptor Slide 13
14 Implementation Steps 1. Implement the demultiplexing/ dispatching infrastructure layer components 2. Implement the connection management layer components 3. Implement the application layer components Slide 14
15 Gateway Example Sattelite Each service in a peer use the gateway to send and receive status info, bulk data and commands to satellites Gateway Computer Tracking Station Peer Ground Station Peer Ground Station Peer Slide 15
16 1.2. Implement the Dispatching Mechanisms A dispatcher is responsible for associating requests to their corresponding acceptors, connectors and service handlers Use the Reactor for synchronous demultiplexing (follow the Reactor guidelines) Use the Proactor for asynchronous demultiplexing (follow the Proactor guidelines) Can be implemented as a separate thread using the Active Object pattern or Leader/Followers thread pools Slide 16
17 Gateway Example 1.1 Select the transport mechanisms uses Socket API with passive-mode and data mode sockets transport handles = socket handles transport address = IP host address and TCP port number 1.2 Implement the dispatching mechanisms using components from the Reactor pattern within a single thread of control using a Singleton Reactor (GoF) Slide 17
18 UML Template Class Notation Generic notation Event_Handler Concrete Binding to SOCK_Stream Wrapper façade class IPC_STREAM Service_Handler Service_Handler <SOCK_Stream> Slide 18
19 Service_Handler Class Definition template <class IPC_STREAM> class Service_Handler : public Event_Handler { public: typedef typename IPC_STREAM::PEER_ADDR Addr; // Hook template method, defined by a subclass virtual void open() = 0; IPC_STREAM &peer() { return ipc_stream_; } Addr &remote_addr() { return ipc_stream_.remote_addr(); } void set_handle(handle handle) {ipc_stream_.set_handle(handle);} private: // Template placeholder for a concrete IPC mechanism wrapper // façade, which encapsulate a data-mode transport endpoint and // transport handle IPC_STREAM ipc_stream_; }; Slide 19
20 2.2 Define the Generic Acceptor Interface A generic acceptor is customized by the components in the application layer A customization can be made by using one of two general strategies: Polymorphism Using subclassing and a Template Method accept (GoF) The concrete service handler is created by a Factory Method (GoF) Parameterized types accept is also here a Template Method (GoF), which delegates to the IPC mechanism configured into the acceptor class, The service handler can also be supplied as a template parameter Slide 20
21 Inheritance - Parameterized Types trade-offs Parameterized types may incur additional compile and link-time overhead but generally compile into faster code Inheritance may incur additional run-time overhead due to the indirection of dynamic binding but is generally faster to compile and link Slide 21
22 Acceptor Template Class Event_Handler Acceptor SERVICE_HANDLER, IPC_ACCEPTOR Both of these concrete types are provided by the components in the application layer Slide 22
23 Acceptor Class Definition template <class SERVICE_HANDLER, class IPC_ACCEPTOR> class Acceptor : public Event_Handler { public: typedef typename IPC_ACCEPTOR::PEER_ADDR Addr; Acceptor (const Addr &local_addr, Reactor *r); virtual void handle_event(handle, Event_Type); protected: virtual void accept(); // template method virtual SERVICE_HANDLER *make_service_handler(); virtual void accept_service_handler(service_handler *); virtual void activate_service_handler(service_handler *); virtual HANDLE get_handle() const; private: IPC_ACCEPTOR peer_acceptor_; // template placeholder }; Slide 23
24 Acceptor Constructor template <class SERVICE_HANDLER, class IPC_ACCEPTOR) Acceptor<SERVICE_HANDLER, IPC_ACCEPTOR>::Acceptor( const Addr &local_addr, Reactor *reactor) { // initialize the IPC_ACCEPTOR; peer_acceptor_.open(local_addr); } // register with <reactor> reactor->register_handler(this, ACCEPT_MASK); Slide 24
25 Acceptor Event Handling In the Gateway Example: the dispatcher is a Reactor calling the handle_event method defined in the Event_Handler base class and specialized in the Acceptor class :Reactor 1. handle_event() :Acceptor 1.1 accept() GoF Adapter method Acceptor::handle_event() { accept(); } Slide 25
26 Acceptor::accept Method template <class SERVICE_HANDLER, class IPC_ACCEPTOR) void Acceptor<SERVICE_HANDLER, IPC_ACCEPTOR>::accept() { // GoF: Factory Method creates a new <SERVICE_HANDLER> SERVICE_HANDLER *service_handler= make_service_handler(); // Hook method that accepts a connection passively accept_service_handler(service_handler); } // Hook method that activates the <SERVICE_HANDLER> by // invoking its <open> activation hook method activate_service_handler(service_handler); Example off a GoF Template Method Slide 26
27 Peer Host specific Classes Event_ Handler Service_ Handler <Sock_Stream> Bulk_Data_ Handler Command_ Handler * Status_ Handler * * Acceptor <Status_Handler, SOCK_Acceptor> Acceptor <Bulk_Data_Handler, SOCK_Acceptor> Acceptor <Command_Handler, SOCK_Acceptor> Slide 27
28 Peer Host Main Program typedef Acceptor<Status_Handler, SOCK_Acceptor> Status_Acceptor; int main() { // Initialize three concrete acceptors to listen for connections on // their well-known ports Status_Acceptor s_acceptor(status_port, Reactor::instance()); Bulk_Data_Acceptor bd_acceptor(bulk_data_port, Reactor::instance()); Command_Acceptor c_acceptor(command_port, Reactor::instance()); } // Event loop that accepts connection request event and processes // data from a gateway for (; ;) Reactor::instance()->handle_events(); Slide 28
29 Gateway specific Classes Event_ Handler * Initiation Dispatcher Service_ Handler <Sock_Stream> Command_ Router * Bulk_Data_ Router * Status_ Router * Connector <Peer_Router, SOCK_Connector> Slide 29
30 Gateway Main Program typedef Service_Handler<SOCK_Stream> Peer_Router; typedef Connector<Peer_Router, SOCK_Connector> Peer_Connector; int main() { Peer_Connector peer_connector(reactor::instance()); vector<peer_router> peers; get_peer_addrs(peers); // initialize the three routers from a config. file typedef vector<peer_router>::iterator Peer_Iterator; } for (Peer_Iterator peer= peers.begin(); peer!= peers.end(); peer++) { peer_connector.connect( (*peer), peer->remote_addr(), Peer_Connector::ASYNC); } for ( ; ;) Reactor->instance()->handle_events(); Slide 30
31 Acceptor/Connector Benefits Reusability, portability, & extensibility This pattern decouples mechanisms for connecting & initializing service handlers from the service processing performed after service handlers are connected & initialized Robustness This pattern strongly decouples the service handler from the acceptor, which ensures that a passive-mode transport endpoint can t be used to read or write data accidentally Efficiency This pattern can establish connections actively with many hosts asynchronously & efficiently over long-latency wide area networks Asynchrony is important in this situation because a large networked system may have hundreds or thousands of host that must be connected Slide 31
32 Acceptor/Connecter Liabilities Additional indirection The Acceptor-Connector pattern can incur additional indirection compared to using the underlying network programming interfaces directly Additional complexity The Acceptor-Connector pattern may add unnecessary complexity for simple client applications that connect with only one server & perform one service using a single network programming interface Slide 32
33 Applying the Reactor and Acceptor-Connector Patterns in JAWS The Reactor architectural pattern decouples: 1.JAWS generic synchronous event demultiplexing & dispatching logic from 2.The HTTP protocol processing it performs in response to events Reactor handle_events() register_handler() remove_handler() <<uses>> handle set Synchronous Event Demuxer select () * Handle * notifies dispatches * owns HTTP Acceptor handle_event () get_handle() Event Handler handle_event () get_handle() HTTP Handler handle_event () get_handle() Slide 33
34 Acceptor/Connector and Reactor The Acceptor-Connector design pattern can use a Reactor as its Dispatcher in order to help decouple: 1.The connection & initialization of peer client & server HTTP services from 2.The processing activities performed by these peer services once they are connected & initialized Slide 34
35 Reactive Connection Management in JAWS Slide 35
36 Reactive Data Transfer in JAWS Slide 36
37 Known Uses Unix network superservers Inetd, Listen Use a master acceptor process that listen for connections on a set of communication ports Inetd services: FTP, Telnet, Daytime and Echo CORBA Object Request Brokers (ORB) Web Browsers Netscape + Internet Explorer use the asynchronous version of the connector component to establish connections with servers associated with images embedded in HTML pages Project Spectrum A high-speed medical image transfer system Slide 37
38 Relation to other POSA2 Patterns Slide 38
39 Acceptor-Connector part two Connector class Concurrency strategies Slide 39
40 Connector Class (1) template <class SERVICE_HANDLER, class IPC_CONNECTOR> class Connector : public Event_Handler { public: enum Connection_Mode { SYNC, ASYNC }; typedef typename IPC_CONNECTOR::PEER_ADDR Addr; Connector(Reactor *reactor): reactor_(reactor) { } // Template Method void connect( SERVICE_HANDLER *sh, const Addr &remote_addr, Connection_Mode mode) { connect_service_handler(sh, remote_addr, mode); } // Adapter Method virtual void handle_event(handle handle, Event_Type) { complete(handle); } protected: virtual void complete(handle handle); Slide 40
41 Connector Class (2) template <class SERVICE_HANDLER, class IPC_CONNECTOR> class Connector : public Event_Handler { // Continued from previous slide virtual void connect_service_handler(const Addr &addr, Connection_Mode mode); int register_handler(service_handler *sh, Connection_Mode mode); virtual void activate_service_handler(service_handler *sh); private: IPC_CONNECTOR connector_; // C++ standard library map that associates <HANDLES> with // <SERVICE_HANDLER> s for pending connections typedef map<handle, SERVICE_HANDLER*> Connection_Map; Connection_Map connection_map_; Reactor *reactor_; } Slide 41
42 Connector::connect_service_handler() template <class SERVICE_HANDLER, class IPC_CONNECTOR> class Connector< SERVICE_HANDLER, IPC_CONNECTOR>:: connect_service_handler(service_handler *svc_handler, const Addr &addr, Connection_Mode mode) { try { connector_.connect(*svc_handler, addr, mode); // activate if we connect synchronously activate_service_handler(svc_handler); } catch (SystemEx &ex) if (ex.status() == EWOULDBLOCK && mode == ASYNC) { // register for asynchronously call back reactor_->register_handler(this,write_mask); // store <service handler *> in map connection_map_[connector_.get_handle()]= svc_handler; } } } Slide 42
43 Connector::complete() template <class SERVICE_HANDLER, class IPC_CONNECTOR> class Connector< SERVICE_HANDLER, IPC_CONNECTOR>::complete( HANDLE handle) { Connection_Map ::iterator i = connection_map_.find(handle); if (i == connection_map_.end() ) throw. // we just want the value part of the <key,value> SERVICE_HANDLER *svc_handler = (*i).second; // Transfer I/O Handle to <service_handler> svc_handler->set_handle(handle); reactor_->remove_handler(handle, WRITE_MASK); connection_map_.erase(i); } // connection is complete so activate handler activate_service_handler(svc_handler); Slide 43
44 Examples of Flexibility Each concrete service handler could implement a different concurrency strategy Status_Router can run in a separate thread Bulk_Data_Router as a separate process Command_Router runs in the same thread as the Reactor The concurrency strategy is implemented in the open() hook method Slide 44
45 Status_Router Class class Status_Router: public Peer_Router { public: virtual void open() { // Make this handler run in separate thread Thread_Manager::instance()->spawn( &Status_Handler::svc_run, this); } static void *svc_run(status_handler *this_obj) { for (; ;) this_obj->run(); } // receive and process status data from/to peers virtual void run() { char buf[bufsiz]; peer().recv(buf, sizeof(buf)); // routing takes place here } }; Slide 45
46 Bulk_Data_Router Class class Bulk_Data_Router: public Peer_Router { public: virtual void open() { // activate router in a separate process if (fork() ==0) { // this method can block because it runs in its own process for (; ;) run(); } } // receive and route bulk data from/to peers virtual void run() { char buf[bufsiz]; peer().recv(buf, sizeof(buf)); // routing takes place here } Slide 46
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.
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,
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
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
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
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
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
Network Programming with Sockets. Process Management in UNIX
Network Programming with Sockets This section is a brief introduction to the basics of networking programming using the BSD Socket interface on the Unix Operating System. Processes in Unix Sockets Stream
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
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
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
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
Resource Containers: A new facility for resource management in server systems
CS 5204 Operating Systems Resource Containers: A new facility for resource management in server systems G. Banga, P. Druschel, Rice Univ. J. C. Mogul, Compaq OSDI 1999 Outline Background Previous Approaches
LESSON 3.6. 98-366 Networking Fundamentals. Understand TCP/IP
Understand TCP/IP Lesson Overview In this lesson, you will learn about: TCP/IP Tracert Telnet Netstat Reserved addresses Local loopback IP Ping Pathping Ipconfig Protocols Anticipatory Set Experiment with
Transparent Redirection of Network Sockets 1
Transparent Redirection of Network Sockets Timothy S. Mitrovich, Kenneth M. Ford, and Niranjan Suri Institute for Human & Machine Cognition University of West Florida {tmitrovi,kford,[email protected].
Network-Oriented Software Development. Course: CSc4360/CSc6360 Instructor: Dr. Beyah Sessions: M-W, 3:00 4:40pm Lecture 2
Network-Oriented Software Development Course: CSc4360/CSc6360 Instructor: Dr. Beyah Sessions: M-W, 3:00 4:40pm Lecture 2 Topics Layering TCP/IP Layering Internet addresses and port numbers Encapsulation
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
Java Network. Slides prepared by : Farzana Rahman
Java Network Programming 1 Important Java Packages java.net java.io java.rmi java.security java.lang TCP/IP networking I/O streams & utilities Remote Method Invocation Security policies Threading classes
Core J2EE Patterns, Frameworks and Micro Architectures
Core J2EE Patterns, Frameworks and Micro Architectures [email protected] Patterns & Design Expertise Center Sun Software Services January 2004 Agenda Patterns Core J2EE Pattern Catalog Background J2EE
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
Objectives of Lecture. Network Architecture. Protocols. Contents
Objectives of Lecture Network Architecture Show how network architecture can be understood using a layered approach. Introduce the OSI seven layer reference model. Introduce the concepts of internetworking
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
Limi Kalita / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3), 2014, 4802-4807. Socket Programming
Socket Programming Limi Kalita M.Tech Student, Department of Computer Science and Engineering, Assam Down Town University, Guwahati, India. Abstract: The aim of the paper is to introduce sockets, its deployment
P09. Architecture Patterns
Software Architecture Theory P09. Architecture Patterns 2014 Sungwon Kang Sungwon Kang 1 9. 아키텍처 패턴 9.1 정의 및 기술방법 9.2 아키텍처 패턴의 종류 9.3 아키텍처 패턴의 적용 9.4 아키텍처 스타일과 아키텍처 패턴의 비교 9.5 아키텍처 패턴과 디자인 패턴의 비교 Sungwon
Elements of Advanced Java Programming
Appendix A Elements of Advanced Java Programming Objectives At the end of this appendix, you should be able to: Understand two-tier and three-tier architectures for distributed computing Understand the
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
Networks. Inter-process Communication. Pipes. Inter-process Communication
Networks Mechanism by which two processes exchange information and coordinate activities Inter-process Communication process CS 217 process Network 1 2 Inter-process Communication Sockets o Processes can
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
Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents
Agent Languages Requirements Overview Java Tcl/Tk Telescript Evaluation Franz J. Kurfess, Cal Poly SLO 211 Requirements for agent Languages distributed programming large-scale (tens of thousands of computers)
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
Introduction Object-Oriented Network Programming CORBA addresses two challenges of developing distributed systems: 1. Making distributed application development no more dicult than developing centralized
H3C SSL VPN RADIUS Authentication Configuration Example
H3C SSL VPN RADIUS Authentication Configuration Example Copyright 2012 Hangzhou H3C Technologies Co., Ltd. All rights reserved. No part of this manual may be reproduced or transmitted in any form or by
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]
1 An application in BPC: a Web-Server
1 An application in BPC: a Web-Server We briefly describe our web-server case-study, dwelling in particular on some of the more advanced features of the BPC framework, such as timeouts, parametrized events,
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
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
Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)
Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies) Duration of Course: 6 Months Fees: Rs. 25,000/- (including Service Tax) Eligibility: B.E./B.Tech., M.Sc.(IT/ computer
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
Design Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems.
Design Patterns Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems. What are the major description parts? Design Patterns Descriptions
EITF25 Internet Techniques and Applications L5: Wide Area Networks (WAN) Stefan Höst
EITF25 Internet Techniques and Applications L5: Wide Area Networks (WAN) Stefan Höst Data communication in reality In reality, the source and destination hosts are very seldom on the same network, for
Japan Communication India Skill Development Center
Japan Communication India Skill Development Center Java Application System Developer Course Detail Track 3 Java Application Software Developer: Phase1 SQL Overview 70 Querying & Updating Data (Review)
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
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
Topic 7 DHCP and NAT. Networking BAsics.
Topic 7 DHCP and NAT Networking BAsics. 1 Dynamic Host Configuration Protocol (DHCP) IP address assignment Default Gateway assignment Network services discovery I just booted. What network is this? What
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
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
Oracle Net Services for Oracle10g. An Oracle White Paper May 2005
Oracle Net Services for Oracle10g An Oracle White Paper May 2005 Oracle Net Services INTRODUCTION Oracle Database 10g is the first database designed for enterprise grid computing, the most flexible and
SOA @ ebay : How is it a hit
SOA @ ebay : How is it a hit Sastry Malladi Distinguished Architect. ebay, Inc. Agenda The context : SOA @ebay Brief recap of SOA concepts and benefits Challenges encountered in large scale SOA deployments
Cisco - Configure the 1721 Router for VLANs Using a Switch Module (WIC-4ESW)
Page 1 of 20 Configure the 1721 Router for VLANs Using a Switch Module (WIC-4ESW) Document ID: 50036 Contents Introduction Prerequisites Requirements Components Used Network Diagram The Role of Switched
Writing Client/Server Programs in C Using Sockets (A Tutorial) Part I. Session 5958. Greg Granger grgran@sas. sas.com. SAS/C & C++ Support
Writing Client/Server Programs in C Using Sockets (A Tutorial) Part I Session 5958 Greg Granger grgran@sas sas.com SAS Slide 1 Feb. 1998 SAS/C & C++ Support SAS Institute Part I: Socket Programming Overview
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!
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
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
How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X
(Advanced Topics in) Operating Systems Winter Term 2009 / 2010 Jun.-Prof. Dr.-Ing. André Brinkmann [email protected] Universität Paderborn PC 1 Overview Overview of chapter 3: Case Studies 3.1 Windows Architecture.....3
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
Transparent Redirection of Network Sockets 1
Transparent Redirection of Network Sockets 1 Timothy S. Mitrovich, Kenneth M. Ford, and Niranjan Suri Institute for Human & Machine Cognition University of West Florida {tmitrovi,kford,nsuri}@ai.uwf.edu
VPN. Date: 4/15/2004 By: Heena Patel Email:[email protected]
VPN Date: 4/15/2004 By: Heena Patel Email:[email protected] What is VPN? A VPN (virtual private network) is a private data network that uses public telecommunicating infrastructure (Internet), maintaining
Chapter 11. User Datagram Protocol (UDP)
Chapter 11 User Datagram Protocol (UDP) The McGraw-Hill Companies, Inc., 2000 1 CONTENTS PROCESS-TO-PROCESS COMMUNICATION USER DATAGRAM CHECKSUM UDP OPERATION USE OF UDP UDP PACKAGE The McGraw-Hill Companies,
Protocols and Architecture. Protocol Architecture.
Protocols and Architecture Protocol Architecture. Layered structure of hardware and software to support exchange of data between systems/distributed applications Set of rules for transmission of data between
How To Create A C++ Web Service
A Guide to Creating C++ Web Services WHITE PAPER Abstract This whitepaper provides an introduction to creating C++ Web services and focuses on:» Challenges involved in integrating C++ applications with
An Overview of Java. overview-1
An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2
Ethernet 241 (USB/Serial) Quick Start Guide
Ethernet 241 (USB/Serial) Quick Start Guide I. Ethernet 241 Device Overview The Ethernet 241 device is a two port switch that interfaces a networked device (such as a printer) with a networked device server,
Apache Jakarta Tomcat
Apache Jakarta Tomcat 20041058 Suh, Junho Road Map 1 Tomcat Overview What we need to make more dynamic web documents? Server that supports JSP, ASP, database etc We concentrates on Something that support
StreamServe Persuasion SP4 StreamServe Connect for SAP - Business Processes
StreamServe Persuasion SP4 StreamServe Connect for SAP - Business Processes User Guide Rev A StreamServe Persuasion SP4StreamServe Connect for SAP - Business Processes User Guide Rev A SAP, mysap.com,
Remote Serial over IP Introduction on serial connections via IP/Ethernet
Remote Serial over IP Introduction on serial connections via IP/Ethernet TABLE OF CONTENT TABLE OF CONTENT... I TABLE OF IMAGES... I INTRODUCTION... 1 Classic Style of Communication... 1 Ethernet and
COMMMUNICATING COOPERATING PROCESSES
COMMMUNICATING COOPERATING PROCESSES The producer-consumer paradigm A buffer of items can be filled by the producer and emptied by the consumer. The producer and the consumer must be synchronized: the
Internet Control Protocols Reading: Chapter 3
Internet Control Protocols Reading: Chapter 3 ARP - RFC 826, STD 37 DHCP - RFC 2131 ICMP - RFC 0792, STD 05 1 Goals of Today s Lecture Bootstrapping an end host Learning its own configuration parameters
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,
C++FA 3.1 OPTIMIZING C++
C++FA 3.1 OPTIMIZING C++ Ben Van Vliet Measuring Performance Performance can be measured and judged in different ways execution time, memory usage, error count, ease of use and trade offs usually have
Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1
Monitoring Infrastructure (MIS) Software Architecture Document Version 1.1 Revision History Date Version Description Author 28-9-2004 1.0 Created Peter Fennema 8-10-2004 1.1 Processed review comments Peter
Dissertation Title: SOCKS5-based Firewall Support For UDP-based Application. Author: Fung, King Pong
Dissertation Title: SOCKS5-based Firewall Support For UDP-based Application Author: Fung, King Pong MSc in Information Technology The Hong Kong Polytechnic University June 1999 i Abstract Abstract of dissertation
Broker Revisited Michael Kircher, Markus Voelter, Klaus Jank, Christa Schwanninger, Michael Stal
Broker Revisited Michael Kircher, Markus Voelter, Klaus Jank, Christa Schwanninger, Michael Stal {Michael.Kircher,Klaus.Jank,Christa.Schwanninger, Michael.Stal}@siemens.com Corporate Technology, Siemens
Industrial Communication Whitepaper. Principles of EtherNet/IP Communication
Industrial Communication Whitepaper Principles of EtherNet/IP Communication 1 Contents Introduction...3 Producer/Consumer Model...4 EtherNet/IP Messaging Types...7 Real Time Data Exchanges...9 Typical
Firewalls and System Protection
Firewalls and System Protection Firewalls Distributed Systems Paul Krzyzanowski 1 Firewalls: Defending the network inetd Most UNIX systems ran a large number of tcp services as dæmons e.g., rlogin, rsh,
APPLICATION CODE APPLICATION CODE S ERVER PROCESS STUB STUB RPC RUNTIME LIBRARY RPC RUNTIME LIBRARY ENDPOINT MAP ENDPOINT MAP
Introduction Overview of Remote Procedure Calls (RPC) Douglas C. Schmidt Washington University, St. Louis http://www.cs.wustl.edu/schmidt/ [email protected] Remote Procedure Calls (RPC) are a popular
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
Computer Networks/DV2 Lab
Computer Networks/DV2 Lab Room: BB 219 Additional Information: http://ti.uni-due.de/ti/en/education/teaching/ss13/netlab Equipment for each group: - 1 Server computer (OS: Windows Server 2008 Standard)
Overview of CORBA 11.1 I NTRODUCTION TO CORBA. 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary
C H A P T E R 1 1 Overview of CORBA 11.1 Introduction to CORBA 11.2 CORBA architecture 11.3 Client and object implementations 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary In previous
Internet Concepts. What is a Network?
Internet Concepts Network, Protocol Client/server model TCP/IP Internet Addressing Development of the Global Internet Autumn 2004 Trinity College, Dublin 1 What is a Network? A group of two or more devices,
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
Middleware Lou Somers
Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,
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 [email protected] Abstract. Web applications have
BASIC ANALYSIS OF TCP/IP NETWORKS
BASIC ANALYSIS OF TCP/IP NETWORKS INTRODUCTION Communication analysis provides powerful tool for maintenance, performance monitoring, attack detection, and problems fixing in computer networks. Today networks
Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures
Part I EAI: Foundations, Concepts, and Architectures 5 Example: Mail-order Company Mail order Company IS Invoicing Windows, standard software IS Order Processing Linux, C++, Oracle IS Accounts Receivable
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
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
Transport and Network Layer
Transport and Network Layer 1 Introduction Responsible for moving messages from end-to-end in a network Closely tied together TCP/IP: most commonly used protocol o Used in Internet o Compatible with a
Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models
Table of Contents J2EE Technology Application Servers... 1 ArchitecturalOverview...2 Server Process Interactions... 4 JDBC Support and Connection Pooling... 4 CMPSupport...5 JMSSupport...6 CORBA ORB Support...
The Key Technology Research of Virtual Laboratory based On Cloud Computing Ling Zhang
International Conference on Advances in Mechanical Engineering and Industrial Informatics (AMEII 2015) The Key Technology Research of Virtual Laboratory based On Cloud Computing Ling Zhang Nanjing Communications
Course Overview: Learn the essential skills needed to set up, configure, support, and troubleshoot your TCP/IP-based network.
Course Name: TCP/IP Networking Course Overview: Learn the essential skills needed to set up, configure, support, and troubleshoot your TCP/IP-based network. TCP/IP is the globally accepted group of protocols
Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence
Web Development Owen Sacco ICS2205/ICS2230 Web Intelligence 2. Web Servers Introduction Web content lives on Web servers Web servers speak the platform independent HyperText Transfer Protocol (HTTP) (so
