Programmer's Guide to Apache Thrift

Paperback Engels 2019 9781617296161
Verwachte levertijd ongeveer 9 werkdagen

Samenvatting

Programmer's Guide to Apache Thrift provides comprehensive coverage of the Apache Thrift framework along with a developer's-eye view of modern distributed application architecture. Packed with complete code examples and pragmatic discussion, this book lays the best practices for multi-language distributed application development. You'll take a guided tour through transports, protocols, IDL and servers as you explore complete example programs in C++, Java and Python. You'll also learn how to work with platforms ranging from enterprise servers to mobile clients.

  About the technology

Any distributed application includes individual components, often written in different languages and hosted in multiple locations, which must communicate quickly and efficiently. Apache Thrift is a communication framework that enables cross-language remote procedure calls and serialization. Apache Thrift supports embedded, mobile, web, and server environments and a host of languages ranging from JavaScript to C++. It's perfect for back end services and embedded systems where size, scalability and performance are mission critical.

 

Key Features Clear, concise coverage of all of the primary Apache Thrift features Complete coverage of the Apache Thrift Interface Definition Language Building and serializing complex user defined types Working with plug in serialization protocols and data compression Creating cross-language services Tools and features to enable interface evolution

Randy Abernethy is an active Apache Thrift contributor and can be found on the dev and user email lists. A serial entrepreneur, Randy founded Hollywood's first all hard disk recording studio in the early 90s, a direct market access institutional brokerage in the 2000s, and has recently focused on the development of proprietary automated trading systems using Apache Thrift for interoperability.

Specificaties

ISBN13:9781617296161
Taal:Engels
Bindwijze:Paperback

Lezersrecensies

Wees de eerste die een lezersrecensie schrijft!

Inhoudsopgave

<div> PART 1 APACHE THRIFT OVERVIEW <div> READ IN LIVEBOOK1. INTRODUCTION TO APACHE THRIFT <div> <div> 1.1. Polyglotism, the pleasure and the pain </div> <div> 1.2. Application integration with Apache Thrift <div> 1.2.1. Type serialization </div> <div> 1.2.2. Service implementation </div> </div> <div> 1.3. Building a simple service <div> 1.3.1. The Hello IDL </div> <div> 1.3.2. The Hello server </div> <div> 1.3.3. A Python client </div> <div> 1.3.4. A C++ client </div> <div> 1.3.5. A Java client </div> </div> <div> 1.4. The communications toolkit landscape <div> 1.4.1. SOAP </div> <div> 1.4.2. REST </div> <div> 1.4.3. Protocol Buffers </div> <div> 1.4.4. Apache Avro </div> <div> 1.4.5. Strengths of Apache Thrift </div> <div> 1.4.6. Take away </div> </div> <div> 1.5. Summary </div> </div> </div> <div> READ IN LIVEBOOK2. APACHE THRIFT ARCHITECTURE <div> <div> 2.1. Transports <div> 2.1.1. The Transport interface </div> <div> 2.1.2. End point transports </div> <div> 2.1.3. Layered transports </div> <div> 2.1.4. Server transports </div> </div> <div> 2.2. Protocols </div> <div> 2.3. Apache Thrift IDL <div> 2.3.1. User-defined types and serialization </div> <div> 2.3.2. RPC services </div> </div> <div> 2.4. Servers </div> <div> 2.5. Security </div> <div> 2.6. Summary </div> </div> </div> <div> READ IN LIVEBOOK3. BUILDING, TESTING, AND DEBUGGING <div> <div> 3.1. Installing the Apache Thrift IDL Compiler <div> 3.1.1. Platform installers </div> <div> 3.1.2. VMs and containers </div> <div> 3.1.3. Building from source </div> </div> <div> 3.2. The Apache Thrift source tree </div> <div> 3.3. Apache Thrift tests </div> <div> 3.4. Debugging RPC services <div> 3.4.1. Examining packets on the wire </div> <div> 3.4.2. Unbuffered interfaces </div> <div> 3.4.3. Interface misalignment </div> <div> 3.4.4. I/O stack misalignment </div> <div> 3.4.5. Instrumenting code </div> <div> 3.4.6. Additional techniques </div> </div> <div> 3.5. Summary </div> </div> </div>PART 2 PROGRAMMING APACHE THRIFT <div> READ IN LIVEBOOK4. MOVING BYTES WITH TRANSPORTS <div> <div> 4.1. End point transports ? part 1: memory &amp; disk <div> 4.1.1. Programming with memory transports </div> <div> 4.1.2. Programming with file transports </div> </div> <div> 4.2. The transport interface <div> 4.2.1. Basic transport operations </div> </div> <div> 4.3. End point transports ? Part 2: networks <div> 4.3.1. Network programming with TSocket </div> </div> <div> 4.4. Server transports <div> 4.4.1. Programming network servers with server transports </div> <div> 4.4.2. The Server Transport interface </div> </div> <div> 4.5. Layered transports <div> 4.5.1. Message framing </div> </div> <div> 4.6. Summary </div> </div> </div> <div> READ IN LIVEBOOK5. SERIALIZING DATA WITH PROTOCOLS <div> <div> 5.1. Basic serialization with the binary protocol <div> 5.1.1. Using the C++ TBinaryProtocol </div> <div> 5.1.2. Using the Java TBinaryProtocol </div> <div> 5.1.3. Using the Python TBinaryProtocol </div> <div> 5.1.4. Takeaway </div> </div> <div> 5.2. The TProtocol interface <div> 5.2.1. Apache Thrift serialization </div> <div> 5.2.2. C++ TProtocol </div> <div> 5.2.3. Java TProtocol </div> <div> 5.2.4. Python TProtocolBase </div> </div> <div> 5.3. Serializing objects <div> 5.3.1. Struct serialization </div> <div> 5.3.2. Struct deserialization </div> <div> 5.3.3. Struct evolution </div> </div> <div> 5.4. TCompactProtocol </div> <div> 5.5. TJSONProtocol </div> <div> 5.6. Selecting a protocol </div> <div> 5.7. Summary </div> </div> </div> <div> READ IN LIVEBOOK6. APACHE THRIFT IDL <div> <div> 6.1. Interfaces </div> <div> 6.2. Apache Thrift IDL <div> 6.2.1. IDL file names </div> <div> 6.2.2. Element names </div> <div> 6.2.3. Keywords </div> </div> <div> 6.3. The IDL compiler <div> 6.3.1. Compilation phases and error messages </div> <div> 6.3.2. Command line switches </div> </div> <div> 6.4. Comments and documentation </div> <div> 6.5. Namespaces </div> <div> 6.6. Built-in types <div> 6.6.1. Base types </div> <div> 6.6.2. Container types </div> <div> 6.6.3. Literals </div> </div> <div> 6.7. Constants <div> 6.7.1. C++ interface constant implementation </div> <div> 6.7.2. Java interface constant implementation </div> <div> 6.7.3. Python interface constant implementation </div> </div> </div> </div> </div>

Managementboek Top 100

Rubrieken

    Personen

      Trefwoorden

        Programmer's Guide to Apache Thrift