San Francisco Public Library

Learning Apache Thrift, make applications communicate using Apache Thrift, Krzysztof Rakowski

Label
Learning Apache Thrift, make applications communicate using Apache Thrift, Krzysztof Rakowski
Language
eng
Illustrations
illustrations
Index
index present
Literary Form
non fiction
Main title
Learning Apache Thrift
Nature of contents
dictionaries
Oclc number
935327026
Responsibility statement
Krzysztof Rakowski
Series statement
Community experience distilled
Sub title
make applications communicate using Apache Thrift
Summary
Make applications cross-communicate using Apache Thrift!About This Book Leverage Apache Thrift to enable applications written in different programming languages (Java, C++, Python, PHP, Ruby, and so on) to cross-communicate. Learn to make your services ready for real-world applications by using stepwise examples and modifying code from Industry giants. Be a crackerjack at solving Apache Thrift-related issues.Who This Book Is ForIf you have some experience of developing applications in one or more languages supported by Apache Thrift (C++, Java, PHP, Python, Ruby, and others) and want to broaden your knowledge and skills in building cross-platform, scalable applications, then this book is for you.What You Will Learn Understand the need for cross-language services and the basics of Apache Thrift. Learn how Apache Thrift works and what problems it solves. Determine when to use Apache Thrift instead of other methods (REST API), and when not to use it. Create and run an example application using Apache Thrift. Use Apache Thrift in your applications written in different languages supported by Apache Thrift (PHP, Python, Ruby, Java, and C++). Handle exceptions and deal with errors. Modify code in different languages. Use Apache Thrift in the production environments of big applications.In DetailWith modern software systems being increasingly complex, providing a scalable communication architecture for applications in different languages is tedious. The Apache Thrift framework is the solution to this problem! It helps build efficient and easy-to-maintain services and offers a plethora of options matching your application type by supporting several popular programming languages, including C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml, and Delphi.This book will help you set aside the basics of service-oriented systems through your first Apache Thrift-powered app. Then, progressing to more complex examples, it will provide you with tips for running large-scale applications in production environments.You will learn how to assess when Apache Thrift is the best tool to be used. To start with, you will run a simple example application, learning the framework's structure along the way; you will quickly advance to more complex systems that will help you solve various real-life problems. Moreover, you will be able to add a communication layer to every application written in one of the popular programming languages, with support for various data types and error handling. Further, you will learn how pre-eminent companies use Apache Thrift in their popular applications.This book is a great starting point if you want to use one of the best tools available to develop cross-language applications in service-oriented architectures.Style and approachA stepwise guide to learning Apache Thrift, with ready-to-run examples explained comprehensively. Advanced topics supply the inspiration for further work
Table Of Contents
Cover; Copyright; Credits; About the Author; About the Reviewer; www.PacktPub.com; Table of Contents; Preface; Chapter 1: Introducing Apache Thrift; Distributed systems and their services; Service-oriented architecture; Distributed systems; Maintainability; Scalability; Testability; An introduction to Apache Thrift; Supported programming languages; Data types; Transports; Protocols; Versioning; Security; Interface description language; Apache Thrift and others; Custom protocols; XML-RPC and JSON-RPC; SOAP and WSDL; RESTful APIs; CORBA; Apache Avro; Protocol BuffersWhen to choose Apache ThriftSummary; Chapter 2: Installing and Running Apache Thrift; Installing Apache Thrift on Linux; Installation requirements; Installing dependencies; Installing dependencies on CentOS; Installing dependencies on Debian and Ubuntu; Installing Apache Thrift; Installing Apache Thrift on Mac OS X; Installing Apache Thrift; Installing Apache Thrift on Windows; Testing the installation; Summary; Chapter 3: Running Your First Apache Thrift Service and Client; Creating necessary project files; Creating a local copy of the Apache Thrift librariesDefining our first service and generating filesThe service code in PHP; The client code in Python; Running the code; What really happened?; Analyzing the code; The service description -- IDL; The server script -- PHP; The client script -- Python; Summary; Chapter 4: Understanding How Apache Thrift Works; Prepare your tools; Apache Thrift's architecture; Going about using the tool; Designing the services; Preparing the interface description; Generating service and client libraries; Implementing services and clients; Running server and clients; The network stack; Transport; Protocol; ProcessorServer and clientExample; Apache Thrift's type system; Basic types; Special types; Structs; Unions; Containers; list; set; map; Usage of containers; Enums; Exceptions; Services; IDL syntax; Comments; Document; Headers; Thrift include; C++ include; Namespace; Definitions; const; typedef; Summary; Chapter 5: Generating and Running Code in Different Languages; PHP; Generating the code; Examining the code; Transports; Protocols; Servers; Implementing and running the service; Implementing and running the client; Java; Generating the code; Examining the code; Transports; Protocols; ServersImplementing and running the serviceImplementing and running the client; Python; Generating the code; Examining the code; Transports; Protocols; Servers; Building the libraries; Implementing and running the service; Implementing and running the client; JavaScript; Generating the code; Examining the code; Transport, protocol, and servers; Implementing and running the client; Ruby; Generating the code; Examining the code; Transports; Protocols; Servers; Implementing and running the service; Implementing and running the client; C++; Generating the code; Examining the code; Transports; Protocols
Classification
Content
Mapped to

Incoming Resources

  • Has instance
    2