TY - BOOK AU - Goodwin,Jason TI - Learning Akka: build fault-tolerant, concurrent, and distributed applications with Akka T2 - Community experience distilled SN - 9781784393540 AV - QA76.73.S28 U1 - 005.133 23 PY - 2015/// CY - Birmingham, UK PB - Packt Publishing KW - Scala (Computer program language) KW - Application software KW - Development KW - Java (Computer program language) KW - Scala (Langage de programmation) KW - Logiciels d'application KW - Développement KW - Java (Langage de programmation) KW - COMPUTERS KW - Programming KW - Object Oriented KW - bisacsh KW - COMPUTERS COMPUTERS KW - Open Source KW - Programming Languages KW - General KW - fast KW - Electronic books KW - local N1 - Includes index; Cover; Copyright; Credits; About the Author; Acknowledgments; About the Reviewer; www.PacktPub.com; Table of Contents; Preface; Chapter 1: Starting Life as an Actor; What's in this book?; Chapter overview; What is Akka; Actor Model origins; What's an Actor anyway?; Actors and Message passing; The Evolution of supervision and fault tolerance in Erlang; The Evolution of distribution and location transparency; What we will build; Example 1 -- handling distributed state; Example 2 -- getting lots of work done; Setting up your environment; Choosing a language; Installing Java -- Oracle JDK8; Installing on WindowsInstalling on OSX; Installing on Linux or Unix (Universal instructions); Ensuring Java is configured in your environment; Installing Scala; Installing Typesafe Activator; Windows; Linux/Unix/OSX; OSX; Creating a new project; Installing an IDE; Install IntelliJ CE; Eclipse; Creating your first Akka application -- setting up the SBT project; Adding Akka to build.sbt; A note on getting the right Scala version with %%; Adding other Dependencies from Maven Central; Creating your first Actor; Making the Message first; Defining Actor response to the Message; Validating the code with unit testsAkka Testkit; Running the test; Homework; Summary; Chapter 2: Actors and Concurrency; Reactive system design; The 4 reactive tenets; Responsive; Elastic; Resilient; Event-driven/message-driven; Reactive Tenet Correlation; Anatomy of an Actor; Java Actor API; Scala Actor API; Creating an actor; Props; Promises, futures, and event-driven programming models; Blocking versus event-driven APIs; Skills check-point; Having an Actor respond via a future; Java example; Scala example; Blocking threads in tests; Understanding futures and promises; Future -- expressing failure and latency in typesPreparing the DB and messages; The messages; Implementing the DB functionality; Enabling remoting; Main; Publishing the messages; Starting the DB; Producing the client; Scaffolding the project; Modifying build.sbt; Building the client; Testing; Homework; General learning; Project homework; Summary; Chapter 3: Getting the Message Across; Setting the stage with an example problem; Sketching the project; Core functionality; Messaging delivery; Messages should be immutable; Ask message pattern; Designing with Ask; Callbacks execute in another execution contextTimeouts are required; Timeout stacktraces aren't useful; Ask has overhead; Complexity of Actors and Ask; Tell; Designing with Tell; Forward; Pipe; Homework; General learning; Project homework; Summary; Chapter 4: Actor Lifecycle -- Handling State and Failure; The 8 Fallacies of Distributed Computing; The network is reliable; Bandwidth is infinite; The network is secure; Network topology doesn't change; There is one administrator; Transport cost is zero; The network is homogeneous; Failure; Isolating failure; Redundancy; Supervision N2 - Build fault tolerant concurrent and distributed applications with AkkaAbout This Book Build networked applications that self-heal Scale out your applications to handle more traffic faster An easy-to-follow guide with a number of examples to ensure you get the best start with AkkaWho This Book Is ForThis book is intended for beginner to intermediate Java or Scala developers who want to build applications to serve the high-scale user demands in computing today. If you need your applications to handle the ever-growing user bases and datasets with high performance demands, then this book is for you. Learning Akka will let you do more for your users with less code and less complexity, by building and scaling your networked applications with ease.What You Will Learn Use Akka to overcome the challenges of concurrent programming Resolve the issues faced in distributed computing with the help of Akka Scale applications to serve a high number of concurrent users Make your system fault-tolerant with self-healing applications Provide a timely response to users with easy concurrency Reduce hardware costs by building more efficient multi-user applications Maximise network efficiency by scaling itIn DetailSoftware today has to work with more data, more users, more cores, and more servers than ever. Akka is a distributed computing toolkit that enables developers to build correct concurrent and distributed applications using Java and Scala with ease, applications that scale across servers and respond to failure by self-healing. As well as simplifying development, Akka enables multiple concurrency development patterns with particular support and architecture derived from Erlang's concept of actors (lightweight concurrent entities). Akka is written in Scala, which has become the programming language of choice for development on the Akka platform.Learning Akka aims to be a comprehensive walkthrough of Akka. This book will take you on a journey through all the concepts of Akka that you need in order to get started with concurrent and distributed applications and even build your own.Beginning with the concept of Actors, the book will take you through concurrency in Akka. Moving on to networked applications, this book will explain the common pitfalls in these difficult problem areas while teaching you how to use Akka to overcome these problems with ease.The book is an easy to follow example-based guide that will strengthen your basic knowledge of Akka and aid you in applying the same to real-world scenarios.Style and approachAn easy-to-follow, example-based guide that will take you through building several networked-applications that work together while you are learning concurrent and distributed computing concepts. Each topic is explained while showing you how to design with Akka and how it is used to overcome common problems in applications. By showing Akka in context to the problems, it will help you understand what the common problems are in distributed applications and how to overcome them UR - https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1134875 ER -