Apache Thrift and Ruby
|
|
|
- Lionel Hopkins
- 9 years ago
- Views:
Transcription
1 Apache Thrift and Ruby By Randy Abernethy In this article, excerpted from The Programmer s Guide to Apache Thrift, we will install Apache Thrift support for Ruby and build a simple Ruby RPC client and server. Ruby is a flexible programming language used for systems administration scripting, web programming and general purpose coding. Many important DevOps tools are written in Ruby, such as Puppet, Chef, and Vagrant. Ruby is behind one of the most popular web frameworks, Rails and Ruby is also a key language in many test frameworks, including RSpec and Cucumber. Ruby provides the best features of Perl s string processing and adds objects, functional programming features, reflection and automatic memory management. When combined with Apache Thrift Ruby becomes an effective RPC service platform as well as an incredibly versatile language for RPC service mocking and testing. To build Apache Thrift clients and servers in Ruby we will need to install the Apache Thrift IDL Compiler and the Apache Thrift Ruby library package. In Ruby packages are called gems and can be installed using the RubyGems gem package manager. There are over 90,000 Ruby gems hosted on RubyGems.org, the central repository for publicly available Ruby packages. A search for thrift on the RubyGems.org site produces a list of over 30 gems, including the official Apache Thrift Ruby library, which is named thrift. If you have a working Ruby installation, it is fairly easy to install support for Apache Thrift. Here s an example: $ sudo gem install thrift Building native extensions. This could take a while... Successfully installed thrift gem installed Installing ri documentation for thrift Enclosing class/module 'thrift_module' for class BinaryProtocolAccelerated not known Installing RDoc documentation for thrift Enclosing class/module 'thrift_module' for class BinaryProtocolAccelerated
2 not known The example above installs the latest version of the Apache Thrift gem, which contains the library code needed to execute Ruby based Apache Thrift clients and servers. The Apache Thrift Ruby library includes an optional C language native extension designed to improve serialization performance. This is automatically built (if possible) by the gem installer. The Ruby Development packages are typically required to build native extensions. To install full Ruby support on an Ubuntu system you could use a command something like the following: $ sudo apt-get install ruby ruby-dev Once we have the thrift gem installed, our next step in building the hello client and server is to generate client and server stubs for our hellosvc service. $ thrift --gen rb hello.thrift #A $ ls -l gen-rb #B total 12 -rw-r--r-- 1 randy randy 161 Oct 26 17:37 hello_constants.rb -rw-r--r-- 1 randy randy 1647 Oct 26 17:37 hello_svc.rb -rw-r--r-- 1 randy randy 139 Oct 26 17:37 hello_types.rb $ head gen-rb/hello_svc.rb #C # # Autogenerated by Thrift Compiler (1.0.0-dev) # # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING # require 'thrift' require 'hello_types' module HelloSvc #D The thrift command above #A generates Ruby code to support all of the Apache Thrift interface components described in hello.thrift. The generated code will be emitted in a subdirectory called gen-rb, as displayed in the listing above #B. The top few lines of the hello_svc.rb are displayed above with the head command #C. As you can see from the comments, this file should be treated as read only, to change it we should change the IDL source and recompile with the thrift compiler. The output also show that Ruby packages each service within a module, module HelloSvc in our case #C. The IDL compiler generates three files to support our IDL definitions, *_constants.rb files contain all of the constants defined in the IDL (none in our case), *_types.rb files contain all of the user defined types defined in the IDL (again, none in our case) and *.svc.rb files define the service client and server stubs required to support the services defined in the IDL. In Ruby the svc file contains a module for each IDL service, HelloSvc in our case. A service module contains a Client class used by service clients and a Processor class used by servers to process service requests. Each service method will also have a class definition for the arguments passed to the server and the result returned from the server. These classes are for use by the Client and the Processor and are not typically accessed directly by user code.
3 Ruby Server Now that we have the Thrift libraries installed and our service Client/Processor code generated we can code up a quick RPC server. Here s an example: Listing 1 ~thriftbook/part3/script/ruby/hello_server.rb #!/usr/bin/env ruby require 'thrift' $:.push('gen-rb') require 'hello_svc' class HelloHandler def getmessage(name) return 'Hello ' + name end end port = 9095 handler = HelloHandler.new() proc = HelloSvc::Processor.new(handler) trans_ep = Thrift::ServerSocket.new(port) trans_buf_fac = Thrift::BufferedTransportFactory.new() proto_fac = Thrift::BinaryProtocolFactory.new() server = Thrift::SimpleServer.new(proc, trans_ep, trans_buf_fac, proto_fac) puts "Starting server on port #{port}..." server.serve() The server source begins with a require statement to include Apache Thrift library support #A, then adds the gen-rb directory to the library path #B before requiring the IDL Compiler generated hello_svc.rb file. This gives us access to both the core thrift library and the code needed to implement the hellosvc. Thrift takes care of all of the service wiring leaving only the implementation of the service methods to us. The HelloHandler class provides a method for each method defined in the Apache Thrift IDL hellosvc #D. After defining the service methods in the Handler we can create a server to host the service. In this example the server is configured to run on port 9095 #E. The IDL Compiler generated processor for the hellosvc is initialized #F with a new instance of the handler class #E. The server will use the processor to pass network calls to the handler methods and return the responses. This example server uses a common Apache Thrift protocol stack:
4 TSocket TBufferedTransport TBinaryProtocol The TSocket layer provides TCP communications with the client and on the server side it is implemented with the ServerSocket class in Ruby #H. The server transport will listen for new connections and create a new socket for each connecting client. The BufferedTransportFactory allows the server to create transport buffers for each connection, collecting response data together until such time as a complete RPC response is serialized and ready to transmit back to the connected client #I. The BinaryProtocolFactory is similar in that is allows the server to create a new binary protocol serializer for each connecting client #J. With the I/O stack created we are ready to construct the server which will orchestrate all of these components. In this example we use the SimpleServer #K. The SimpleServer will only accept one client connection at a time, queuing connection requests until the current client disconnects. After constructing the server with an initialized processor, transport stack and protocol we can run it by calling the serve() method #L. Running the Ruby server should look something like this: $ ruby hello_server.rb Starting server on port A Ruby Client Next we ll take a look at a basic Ruby client we can use to test our server. Listing 2 ~thriftbook/part3/script/ruby/hello_server.rb
5 Things should look fairly familiar. The client has the same dependencies as the server #A, requiring the thrift library and the hello_svc boilerplate. The I/O stack is also identical, including the Socket end point transport and a transport buffer layer, as well as the binary serialization protocol #C. The main client code listing is wrapped in a begin rescue block #B. The rescue clause will trap any Thrift exceptions and display them to the console #H. On the client side, to connect with the server we open the socket, using the transport open() method #E. With the connection open, we can use the new hellosvc client instance #D to make calls to the server using the service interface #F. When the client s session is complete the connection can be closed with the transport close() method #G. Ruby Features Ruby is a fairly high profile language and is one of the more frequently used Apache Thrift languages. The Apache Thrift Ruby libraries support most of the top shelf Apache Thrift features. When using Apache Thrift IDL the type mappings from Ruby to Apache Thrift are intuitive: Apache Thrift Type Ruby Type bool True or False byte, i16, i32, i64 Integer (e.g. 8, 0, -394) double Float (e.g , ) binary string String (e.g. "\xe5\xa5\xbd") String (e.g. hi Mom ) list Array (e.g. [1,2,3,4,5]) map Hash (e.g. {'red' => 'FF0000', 'blue' => 0000FF }) set struct Set (e.g. Set.new([1,2,3,4,5])) Object (e.g. mytype.new({ name => Bob, age =>24}))
6 union Object (e.g. myunion.new({ color => red })) Ruby also supports IDL namespaces. In Ruby an IDL namespace generates a module. For example placing the statement namespace rb FishCo at the top of an IDL file would place all of the generated code in the Ruby module FishCo. Ruby will also create modules for wildcard namespaces, for example namespace * FishCo. Ruby supports most of the common Apache Thrift End Point Transports TCP Sockets Thrift::Socket HTTP Thrift::HTTPClientTransport Unix Domain Sockets Thrift::UNIXSocket Memory Buffers Thrift::MemoryBufferTransport Arbitrary Streams Thrift::IOStreamTransport Ruby I/O stacks usually layer either the buffered transport or the framed transport over the endpoints. The buffered transport (Thrift::BufferedTransport) should be used by default for performance to avoid transmitting incomplete messages. Some servers (typically nonblocking servers) require a frame header, in which case the framed transport should be used (Thrift::FramedTransport). The framed transport provides its own buffering. Ruby also supply all three common serialization protocols Binary Thrift::BinaryProtocol Thrift::BinaryProtocolAccelerated Compact Thrift::CompactProtocol JSON Thrift::JsonProtocol A native implementation of the binary protocol can be accessed through BinaryProtocolAccelerated and BinaryProtocolAcceleratedFactory classes. The native extension is a compiled C language drop in replacement for the Ruby based BinaryProtocol. In the client program, you could replace the BinaryProtocol type with the BinaryProtocolAccelerated type to use the faster native extension. On the server you would replace the BinaryProtocolFactory with the BinaryProtocolAcceleratedFactory. The speed improvement varies by platform and application. Here are some time trials to give you a sense of the general magnitude of performance improvement represented by BinaryProtocolAccelerated. When running the hellosvc::getmessage() method 100,000 times in a tight loop against a local server using the Ruby implementation of BinaryProtocol, the total run time consumed was about 14 seconds on my test system. Changing the server to the accelerated native extension reduced this to
7 around 12.5 seconds and changing the client and server to native produced a run time of about 11 seconds. So while the performance boost is modest, if you have the native extension lying around, it is probably worth using. The native extension may not build successfully on all target systems, which might be a good reason not to use it. Whether you choose the Ruby or the C implementation of BinaryProtocol the bits on the wire are the same and the client or server on the other end of the connection will not be impacted by your choice. Ruby also supplies a useful set of prebuilt servers you can quickly deploy. Single Threaded Server Thrift::SimpleServer Multi-Threaded Server Thrift::ThreadedServer Thread Pool Server Thrift::ThreadPoolServer Nonblocking server Thrift::NonblockingServer HTTP server Thrift::ThinHTTPServer Thrift::MongrelHTTPServer The single threaded simple server handles one client at a time. It is simple and fast but only useful in special cases. The multi-threaded server creates a new thread for each client, allowing multiple clients to connect in parallel. The standard Ruby interpreter does not allow more than one thread to run at a time. This means that I/O and system operations can take place in parallel but the Ruby code associated with the server cannot. The thread pool server creates a pool of threads (configurable through the last parameter of the server s initialize method, 20 by default) and assigns each thread to a connecting client. When all threads are in use, connections queue until a thread is freed by a closing connection. The nonblocking server is the most complex of the servers. It uses a pool of worker threads to process inbound user requests from an arbitrary number of clients. The thread pool can be set in the server s initialize method and defaults to 20. The Ruby library offers two HTTP server implementations. The first is based on the Thin Ruby gem. Thin is a Ruby web server that combines the Mongrel parser, the Event Machine network I/O library and the Rack webserver interface. The second implementation is based on Mongrel, another popular Ruby web server. For more details regarding servers and threading models, see the Servers Chapter in my book, The Programmer s Guide to Apache Thrift.
MEAP Edition Manning Early Access Program The Programmer s Guide to Apache Thrift Version 15
MEAP Edition Manning Early Access Program The Programmer s Guide to Apache Thrift Version 15 Copyright 2015 Manning Publications For more information on this and other Manning titles go to www.manning.com
Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON
Revista Informatica Economică, nr. 4 (44)/2007 45 Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON Iulian ILIE-NEMEDI, Bucharest, Romania, [email protected] Writing a custom web
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
A Comparative Study on Vega-HTTP & Popular Open-source Web-servers
A Comparative Study on Vega-HTTP & Popular Open-source Web-servers Happiest People. Happiest Customers Contents Abstract... 3 Introduction... 3 Performance Comparison... 4 Architecture... 5 Diagram...
The Other mod_rails: Easy Rails Deployment with JRuby. Nick Sieger Sun Microsystems, Inc
The Other mod_rails: Easy Rails Deployment with JRuby Nick Sieger Sun Microsystems, Inc CGI/FCGI Mongrel omg puppiez! not nirvana... Processes: 68 total, 3 running, 1 stuck, 64 sleeping... 309 threads
FAQs. This material is built based on. Lambda Architecture. Scaling with a queue. 8/27/2015 Sangmi Pallickara
CS535 Big Data - Fall 2015 W1.B.1 CS535 Big Data - Fall 2015 W1.B.2 CS535 BIG DATA FAQs Wait list Term project topics PART 0. INTRODUCTION 2. A PARADIGM FOR BIG DATA Sangmi Lee Pallickara Computer Science,
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
The Advanced JTAG Bridge. Nathan Yawn [email protected] 05/12/09
The Advanced JTAG Bridge Nathan Yawn [email protected] 05/12/09 Copyright (C) 2008-2009 Nathan Yawn Permission is granted to copy, distribute and/or modify this document under the terms of the
Introduction to CloudScript
Introduction to CloudScript A NephoScale Whitepaper Authors: Nick Peterson, Alan Meadows Date: 2012-07-06 CloudScript is a build language for the cloud. It is a simple Domain Specific Language (DSL) that
socketio Documentation
socketio Documentation Release 0.1 Miguel Grinberg January 17, 2016 Contents 1 What is Socket.IO? 3 2 Getting Started 5 3 Rooms 7 4 Responses 9 5 Callbacks 11 6 Namespaces 13 7 Using a Message Queue 15
Accelerating Rails with
Accelerating Rails with lighty Jan Kneschke [email protected] RailsConf 2006 Chicago, IL, USA Who is that guy? Jan Kneschke Main developer of lighty Works at MySQL AB Lives in Kiel, Germany Had to choose
Getting Started with the Internet Communications Engine
Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2
How To Configure A Bmca Log File Adapter For Windows 2.5 (For Windows) For A Powerpoint 2.2 (For Microsoft) (For Ubuntu) (Powerpoint 2) (Windows) (Perl) (
BMC Impact Event Adapters User Guide Supporting BMC Event and Impact Management 2.0 BMC ProactiveNet Performance Manager 8.0 November 2009 www.bmc.com Contacting BMC Software You can access the BMC Software
Apache HTTP Server. Implementation Guide. (Version 5.7) Copyright 2013 Deepnet Security Limited
Implementation Guide (Version 5.7) Copyright 2013 Deepnet Security Limited Copyright 2013, Deepnet Security. All Rights Reserved. Page 1 Trademarks Deepnet Unified Authentication, MobileID, QuickID, PocketID,
eggon SDK for ios 7 Integration Instructions
eggon SDK for ios 7 Integration Instructions The eggon SDK requires a few simple steps in order to be used within your ios 7 application. Environment This guide assumes that a standard ios Development
How to Make the Client IP Address Available to the Back-end Server
How to Make the Client IP Address Available to the Back-end Server For Layer 4 - UDP and Layer 4 - TCP services, the actual client IP address is passed to the server in the TCP header. No further configuration
CIA Lab Assignment: Web Servers
CIA Lab Assignment: Web Servers A. Bakker N. Sijm C. Dumitru J. van der Ham Feedback deadline: October 17, 2014 10:00 CET Abstract Web servers are an important way of putting information out on the Internet
Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5
Technical Note Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5 In the VMware Infrastructure (VI) Perl Toolkit 1.5, VMware
Storing Measurement Data
Storing Measurement Data File I/O records or reads data in a file. A typical file I/O operation involves the following process. 1. Create or open a file. Indicate where an existing file resides or where
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]
Pro Puppet. Jeffrey McCune. James TurnbuII. Apress* m in
Pro Puppet m in James TurnbuII Jeffrey McCune Apress* About the Authors About the Technical Reviewer Acknowledgments Introduction Chapter 1: Getting Started with Puppet What Is Puppet? Deployment Configuration
UBS KeyLink Quick reference WEB Installation Guide
ab UBS KeyLink Quick reference WEB Installation Guide Table of contents 1. Introduction 3 1.1. Why is an Installation needed? 3 1.2. Is UBS KeyLink secure? 3 1.3. Information about Secure Sockets Layer
Modbus and ION Technology
70072-0104-14 TECHNICAL 06/2009 Modbus and ION Technology Modicon Modbus is a communications protocol widely used in process control industries such as manufacturing. PowerLogic ION meters are compatible
Configuring Load Balancing
When you use Cisco VXC Manager to manage thin client devices in a very large enterprise environment, a single Cisco VXC Manager Management Server cannot scale up to manage the large number of devices.
EMC Documentum Content Management Interoperability Services
EMC Documentum Content Management Interoperability Services Version 6.7 Deployment Guide EMC Corporation Corporate Headquarters: Hopkinton, MA 01748-9103 1-508-435-1000 www.emc.com EMC believes the information
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
PMOD Installation on Linux Systems
User's Guide PMOD Installation on Linux Systems Version 3.7 PMOD Technologies Linux Installation The installation for all types of PMOD systems starts with the software extraction from the installation
The Lagopus SDN Software Switch. 3.1 SDN and OpenFlow. 3. Cloud Computing Technology
3. The Lagopus SDN Software Switch Here we explain the capabilities of the new Lagopus software switch in detail, starting with the basics of SDN and OpenFlow. 3.1 SDN and OpenFlow Those engaged in network-related
The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.
Content Introduction... 2 Data Access Server Control Panel... 2 Running the Sample Client Applications... 4 Sample Applications Code... 7 Server Side Objects... 8 Sample Usage of Server Side Objects...
Configuring Apache HTTP Server With Pramati
Configuring Apache HTTP Server With Pramati 45 A general practice often seen in development environments is to have a web server to cater to the static pages and use the application server to deal with
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,
Apache Web Server System Description
Apache Web Server System Description Version 2.x 2011-01-13 SEAL Systems Copyright This document and all its parts are protected by copyright. Their use without prior written consent by SEAL Systems is
TFE listener architecture. Matt Klein, Staff Software Engineer Twitter Front End
TFE listener architecture Matt Klein, Staff Software Engineer Twitter Front End Agenda TFE architecture overview TSA architecture overview TSA hot restart Future plans Q&A TFE architecture overview Listener:
Snort. A practical NIDS
Snort A practical NIDS What is SNORT Snort is a packet logger/analyzer, which can be used to implement a NIDS. It can based be used in 4 modes: Sniffer mode Packet Logger mode Network Intrusion Detection
Building Applications Using Micro Focus COBOL
Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.
IUCLID 5 Guidance and Support
IUCLID 5 Guidance and Support Web Service Installation Guide July 2012 v 2.4 July 2012 1/11 Table of Contents 1. Introduction 3 1.1. Important notes 3 1.2. Prerequisites 3 1.3. Installation files 4 2.
Understanding Evolution's Architecture A Technical Overview
Understanding Evolution's Architecture A Technical Overview Contents Introduction Understanding Evolution's Design Evolution Architecture Evolution Server Transports Evolution Benefits How Does Evolution
Oracle Communications WebRTC Session Controller: Basic Admin. Student Guide
Oracle Communications WebRTC Session Controller: Basic Admin Student Guide Edition 1.0 April 2015 Copyright 2015, Oracle and/or its affiliates. All rights reserved. Disclaimer This document contains proprietary
Integrating R with the Go programming language using interprocess communication
Integrating R with the Go programming language using interprocess communication Christoph Best, Karl Millar, Google Inc. [email protected] Statistical software in practice & production Production environments!!!=
Installing Ruby on Windows XP
Table of Contents 1 Installation...2 1.1 Installing Ruby... 2 1.1.1 Downloading...2 1.1.2 Installing Ruby...2 1.1.3 Testing Ruby Installation...6 1.2 Installing Ruby DevKit... 7 1.3 Installing Ruby Gems...
Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords
Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords Author: Paul Seymer CMSC498a Contents 1 Background... 2 1.1 HTTP 1.0/1.1... 2 1.2 Password
µ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.
Integrate Rails into an Existing IIS Web infrastructure using Mongrel
This article will walk you through the steps of installing Ruby, Gems, Rails, and other important libraries on a Windows 2003 server with IIS. Microsoft s Internet Information Server is a popular proprietary
Hive Interview Questions
HADOOPEXAM LEARNING RESOURCES Hive Interview Questions www.hadoopexam.com Please visit www.hadoopexam.com for various resources for BigData/Hadoop/Cassandra/MongoDB/Node.js/Scala etc. 1 Professional Training
Streaming Media System Requirements and Troubleshooting Assistance
Test Your System Streaming Media System Requirements and Troubleshooting Assistance Test your system to determine if you can receive streaming media. This may help identify why you are having problems,
The IBM i on Rails + + Anthony Avison [email protected]. Copyright 2014 PowerRuby, Inc.
The IBM i on Rails + + Anthony Avison [email protected] Copyright 2014 PowerRuby, Inc. Rails on the the IBM i + + Anthony Avison [email protected] Copyright 2014 PowerRuby, Inc. There's something
Ruby On Rails. CSCI 5449 Submitted by: Bhaskar Vaish
Ruby On Rails CSCI 5449 Submitted by: Bhaskar Vaish What is Ruby on Rails? Ruby on Rails is a web application framework written in Ruby, a dynamic programming language. Ruby on Rails uses the Model-View-Controller
BRI to PRI Connection Using Data Over Voice
BRI to PRI Connection Using Data Over Voice Document ID: 14962 Contents Introduction Prerequisites Requirements Conventions Background Information Configure Network Diagram Configurations Verify Troubleshoot
Desktop : Ubuntu 10.04 Desktop, Ubuntu 12.04 Desktop Server : RedHat EL 5, RedHat EL 6, Ubuntu 10.04 Server, Ubuntu 12.04 Server, CentOS 5, CentOS 6
201 Datavoice House, PO Box 267, Stellenbosch, 7599 16 Elektron Avenue, Technopark, Tel: +27 218886500 Stellenbosch, 7600 Fax: +27 218886502 Adept Internet (Pty) Ltd. Reg. no: 1984/01310/07 VAT No: 4620143786
PROFESSIONAL. Node.js BUILDING JAVASCRIPT-BASED SCALABLE SOFTWARE. Pedro Teixeira WILEY. John Wiley & Sons, Inc.
PROFESSIONAL Node.js BUILDING JAVASCRIPT-BASED SCALABLE SOFTWARE Pedro Teixeira WILEY John Wiley & Sons, Inc. INTRODUCTION xxvii CHAPTER 1: INSTALLING NODE 3 Installing Node on Windows 4 Installing on
ProCAP Transfer with Omneon Interface
ProCAP Transfer with Omneon Interface 1 Table of Contents: Table of Contents:... 2 Transfer Omneon Overview... 3 Single Transfer... 4 Loading Transfer Files...4 Selecting the Video Clip...5 Encode Properties...7
The Answer to the 14 Most Frequently Asked Modbus Questions
Modbus Frequently Asked Questions WP-34-REV0-0609-1/7 The Answer to the 14 Most Frequently Asked Modbus Questions Exactly what is Modbus? Modbus is an open serial communications protocol widely used in
Internet Information TE Services 5.0. Training Division, NIC New Delhi
Internet Information TE Services 5.0 Training Division, NIC New Delhi Understanding the Web Technology IIS 5.0 Architecture IIS 5.0 Installation IIS 5.0 Administration IIS 5.0 Security Understanding The
Puppet Firewall Module and Landb Integration
Puppet Firewall Module and Landb Integration Supervisor: Steve Traylen Student: Andronidis Anastasios Summer 2012 1 Abstract During my stay at CERN as an intern, I had to complete two tasks that are related
APACHE WEB SERVER. Andri Mirzal, PhD N28-439-03
APACHE WEB SERVER Andri Mirzal, PhD N28-439-03 Introduction The Apache is an open source web server software program notable for playing a key role in the initial growth of the World Wide Web Typically
Mobility Information Series
SOAP vs REST RapidValue Enabling Mobility XML vs JSON Mobility Information Series Comparison between various Web Services Data Transfer Frameworks for Mobile Enabling Applications Author: Arun Chandran,
Creating a Simple, Multithreaded Chat System with Java
Creating a Simple, Multithreaded Chat System with Java Introduction by George Crawford III In this edition of Objective Viewpoint, you will learn how to develop a simple chat system. The program will demonstrate
An Overview of Oracle Forms Server Architecture. An Oracle Technical White Paper April 2000
An Oracle Technical White Paper INTRODUCTION This paper is designed to provide you with an overview of some of the key points of the Oracle Forms Server architecture and the processes involved when forms
Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture
Review from last time CS 537 Lecture 3 OS Structure What HW structures are used by the OS? What is a system call? Michael Swift Remzi Arpaci-Dussea, Michael Swift 1 Remzi Arpaci-Dussea, Michael Swift 2
Universal Event Monitor for SOA 5.2.0 Reference Guide
Universal Event Monitor for SOA 5.2.0 Reference Guide 2015 by Stonebranch, Inc. All Rights Reserved. 1. Universal Event Monitor for SOA 5.2.0 Reference Guide.............................................................
Installing Rails 2.3 Under CentOS/RHEL 5 and Apache 2.2
Installing Rails 2.3 Under CentOS/RHEL 5 and Apache 2.2 Scott Taylor Tailor Made Software July 24, 2011 Version 1.2 1.0 Introduction Ruby On Rails (aka just Rails ) is a modern scripting system that allows
Cleaning Encrypted Traffic
Optenet Documentation Cleaning Encrypted Traffic Troubleshooting Guide iii Version History Doc Version Product Date Summary of Changes V6 OST-6.4.300 01/02/2015 English editing Optenet Documentation
Green Telnet. Making the Client/Server Model Green
Green Telnet Reducing energy consumption is of growing importance. Jeremy and Ken create a "green telnet" that lets clients transition to a low-power, sleep state. By Jeremy Blackburn and Ken Christensen,
Introduction. How does FTP work?
Introduction The µtasker supports an optional single user FTP. This operates always in active FTP mode and optionally in passive FTP mode. The basic idea of using FTP is not as a data server where a multitude
1 Recommended Readings. 2 Resources Required. 3 Compiling and Running on Linux
CSC 482/582 Assignment #2 Securing SimpleWebServer Due: September 29, 2015 The goal of this assignment is to learn how to validate input securely. To this purpose, students will add a feature to upload
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
This guide describes how to quickly install and use Vibe Data Stream for Machine Data 2.1.0 on a single machine with default configuration.
Informatica Vibe Data Stream for Machine Data Version 2.1.0 Quick Start Guide June 2014 Copyright (c) 2014 Informatica. All rights reserved. Contents Overview... 1 Pre-Installation Tasks... 2 Verify Minimum
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
Linux Driver Devices. Why, When, Which, How?
Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may
Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner
1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi
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,
Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT
Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT AGENDA 1. Introduction to Web Applications and ASP.net 1.1 History of Web Development 1.2 Basic ASP.net processing (ASP
SAIP 2012 Performance Engineering
SAIP 2012 Performance Engineering Author: Jens Edlef Møller ([email protected]) Instructions for installation, setup and use of tools. Introduction For the project assignment a number of tools will be used.
NAT TCP SIP ALG Support
The feature allows embedded messages of the Session Initiation Protocol (SIP) passing through a device that is configured with Network Address Translation (NAT) to be translated and encoded back to the
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)
Install MS SQL Server 2012 Express Edition
Install MS SQL Server 2012 Express Edition Sohodox now works with SQL Server Express Edition. Earlier versions of Sohodox created and used a MS Access based database for storing indexing data and other
Suricata IDS. What is it and how to enable it
Complete. Simple. Affordable Copyright 2014 AlienVault. All rights reserved. AlienVault, AlienVault Unified Security Management, AlienVault USM, AlienVault Open Threat Exchange, AlienVault OTX, Open Threat
Scalable PLC AC500 Communication AC500 Modbus TCP. ABB Group Version 3.1 (2012-07) Technical Guides
Scalable PLC AC500 Communication AC500 Modbus TCP Version 3.1 (2012-07) Technical Guides Coming up Modbus TCP with AC500 Configuration and parameterization Program in CoDeSys March 11, 2013 Slide 2 AC500
How to Run Spark Application
How to Run Spark Application Junghoon Kang Contents 1 Intro 2 2 How to Install Spark on a Local Machine? 2 2.1 On Ubuntu 14.04.................................... 2 3 How to Run Spark Application on a
Wakanda Studio Features
Wakanda Studio Features Discover the many features in Wakanda Studio. The main features each have their own chapters and other features are documented elsewhere: Wakanda Server Administration Data Browser
GlobalSCAPE DMZ Gateway, v1. User Guide
GlobalSCAPE DMZ Gateway, v1 User Guide GlobalSCAPE, Inc. (GSB) Address: 4500 Lockhill-Selma Road, Suite 150 San Antonio, TX (USA) 78249 Sales: (210) 308-8267 Sales (Toll Free): (800) 290-5054 Technical
A PKI case study: Implementing the Server-based Certificate Validation Protocol
54 ISBN: 978-960-474-048-2 A PKI case study: Implementing the Server-based Certificate Validation Protocol MARIUS MARIAN University of Craiova Department of Automation ROMANIA [email protected] EUGEN
depl Documentation Release 0.0.1 depl contributors
depl Documentation Release 0.0.1 depl contributors December 19, 2013 Contents 1 Why depl and not ansible, puppet, chef, docker or vagrant? 3 2 Blog Posts talking about depl 5 3 Docs 7 3.1 Installation
Application Note: AN00121 Using XMOS TCP/IP Library for UDP-based Networking
Application Note: AN00121 Using XMOS TCP/IP Library for UDP-based Networking This application note demonstrates the use of XMOS TCP/IP stack on an XMOS multicore micro controller to communicate on an ethernet-based
Deploying and Monitoring Ruby on Rails A practical guide
Deploying and Monitoring Ruby on Rails A practical guide Mathias Meyer and Jonathan Weiss, 02.09.2008 Peritor GmbH Who are we? Jonathan Weiss Consultant for Peritor GmbH in Berlin Specialized in Rails,
Security Overview of the Integrity Virtual Machines Architecture
Security Overview of the Integrity Virtual Machines Architecture Introduction... 2 Integrity Virtual Machines Architecture... 2 Virtual Machine Host System... 2 Virtual Machine Control... 2 Scheduling
REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux
REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux Lesson-12: Real Time Linux 1 1. Real Time Linux 2 Linux 2.6.x Linux is after Linus Torvalds, father of the Linux operating
BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: 10.1.1. Security Note
BlackBerry Enterprise Service 10 Secure Work Space for ios and Android Version: 10.1.1 Security Note Published: 2013-06-21 SWD-20130621110651069 Contents 1 About this guide...4 2 What is BlackBerry Enterprise
RED HAT SOFTWARE COLLECTIONS BRIDGING DEVELOPMENT AGILITY AND PRODUCTION STABILITY
RED HAT S BRIDGING DEVELOPMENT AGILITY AND PRODUCTION STABILITY TECHNOLOGY BRIEF INTRODUCTION BENEFITS Choose the right runtimes for your project with access to the latest stable versions. Preserve application
Network Communication
Network Communication Outline Sockets Datagrams TCP/IP Client-Server model OSI Model Sockets Endpoint for bidirectional communication between two machines. To connect with each other, each of the client
MetroPro Remote Access OMP-0476F. Zygo Corporation Laurel Brook Road P.O. Box 448 Middlefield, Connecticut 06455
MetroPro Remote Access OMP-0476F Zygo Corporation Laurel Brook Road P.O. Box 448 Middlefield, Connecticut 06455 Telephone: (860) 347-8506 E-mail: [email protected] Website: www.zygo.com ZYGO CUSTOMER SUPPORT
Exam Name: IBM WebSphere Process Server V6.2,
Vendor: IBM Exam Code: 000-375 Exam Name: IBM WebSphere Process Server V6.2, System Administration Version: DEMO 1.A company has an IBM WebSphere Process Server clustered environment running. A system
StreamServe Persuasion SP5 Control Center
StreamServe Persuasion SP5 Control Center User Guide Rev C StreamServe Persuasion SP5 Control Center User Guide Rev C OPEN TEXT CORPORATION ALL RIGHTS RESERVED United States and other international patents
Rserve A Fast Way to Provide R Functionality to Applications
New URL: http://www.r-project.org/conferences/dsc-2003/ Proceedings of the 3rd International Workshop on Distributed Statistical Computing (DSC 2003) March 20 22, Vienna, Austria ISSN 1609-395X Kurt Hornik,
BIT COMMANDER. Serial RS232 / RS485 to Ethernet Converter
BIT COMMANDER Serial RS232 / RS485 to Ethernet Converter (Part US2000A) Copyrights U.S. Converters 1 Contents Overview and Features... 3 Functions..5 TCP Server Mode... 5 Httpd Client Mode.5 TCP Auto mode....6
Programmable set for Ethernet Modbus/TCP in IP67 TI-BL67-PG-EN-2
Type code Ident no. 1545065 Number of channels 2 Dimensions (W x L x H) 108 x 145 x 77.5 mm CoDeSys-programmable acc. to IEC 61131-3 Cable max. 50 m between interface and read/write head 10/100 Mbps Male
Chapter 10 Case Study 1: LINUX
MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 10 Case Study 1: LINUX History of UNIX and Linux UNICS PDP-11 UNIX Portable UNIX Berkeley UNIX Standard UNIX MINIX Linux UNIX/Linux Goals
