Distributed computing in Java 9 make the best of Java for distributing applications

Explore the power of distributed computing to write concurrent, scalable applications in Java About This Book Make the best of Java 9 features to write succinct code Handle large amounts of data using HPC Make use of AWS and Google App Engine along with Java to establish a powerful remote computatio...

Descripción completa

Detalles Bibliográficos
Otros Autores: Pattamsetti, Raja Malleswara Rao, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham, [England] ; Mumbai, [India] : Packt 2017.
Edición:1st edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630676906719
Tabla de Contenidos:
  • Cover
  • Copyright
  • Credits
  • About the Author
  • About the Reviewer
  • www.PacktPub.com
  • Customer Feedback
  • Table of Contents
  • Preface
  • Chapter 1: Quick Start to Distributed Computing
  • Parallel computing
  • Amdahl's law
  • Distributed computing
  • Parallel versus distributed computing
  • Design considerations for distributed systems
  • Java support
  • Summary
  • Chapter 2: Communication between Distributed Applications
  • Client-server communication
  • Sockets and streams
  • Socket programming for TCP
  • Reading from the socket
  • Socket programming for UDP
  • Multicasting
  • Streams
  • URLs, URLConnections, and the ContentHandler classes
  • URL (base URL and relative URL)
  • Practicality of URLs
  • ClassLoader
  • Summary
  • Chapter 3: RMI, CORBA, and JavaSpaces
  • RMI
  • What is RMI?
  • Key terminologies of RMI
  • RMI for distributed computing
  • Writing an RMI server
  • Implementing a remote interface
  • Creating a client program
  • Compiling programs
  • Building a JAR file from the interface classes
  • Building the server classes
  • Building the client classes
  • Running a remote client program
  • Starting the server
  • Invoking the client
  • Common Object Request Broker Architecture (CORBA)
  • CORBA standards
  • Inter-ORB communication
  • Java support for CORBA
  • OMG IDL samples
  • Interfaces
  • Types and constants
  • Structures
  • Discriminated unions
  • Sequences
  • CORBA services
  • Sample CORBA program using JAVA IDL
  • IDL interface specification
  • Compiling the IDL
  • Client application
  • Object implementation
  • Defining the server
  • Compiling and starting the server
  • Executing the client
  • JavaSpaces
  • Overview
  • How it works
  • Sample JavaSpaces code
  • How Java 9 adds value
  • Summary
  • Chapter 4: Enterprise Messaging
  • EMS
  • JMS
  • The publish/subscribe messaging paradigm.
  • The Point-To-Point Messaging Paradigm
  • JMS interfaces
  • Developing a JMS application
  • Publish-Subscribe (topic) programming
  • Point-To-Point (queue) programming
  • Web services
  • Web service architectures
  • SOAP web services
  • RESTful web services
  • Building a SOAP web service using the JAX-WS API in RPC Style
  • Building SOAP web service using the JAX-WS API in Document style
  • Building a RESTful web service using the JAX-RS API (using the Jersey implementation)
  • Enterprise integration patterns
  • Summary
  • Chapter 5: HPC Cluster Computing
  • Era of computing
  • Commanding parallel system architectures
  • MPP
  • SMP
  • Distributed systems
  • Clusters
  • Network of workstations
  • Cluster computer architecture
  • Cluster system software and tools
  • HPCC
  • Java support for high-performance computing
  • Java support for parallel programming models
  • Multithreading
  • Parallelism
  • Synchronization
  • JOMP
  • Java message passing
  • The Spliterator interface
  • Parallel stream processing
  • Java 9 updates for processing an API
  • Summary
  • Chapter 6: Distributed Databases
  • Distributed and decentralized databases
  • Motivation for distributed databases
  • Distributed database environments
  • Homogeneous distributed database environment
  • Heterogeneous distributed database environment
  • Distributed database setup methodologies
  • Replication
  • Horizontal partitioning
  • Vertical partitioning
  • Hybrid setup
  • Distributed DBMS architecture
  • Java Database Connectivity
  • JTA for distributed transactions
  • Switching between the transaction modes
  • Sample program for the XA transaction
  • Summary
  • Chapter 7: Cloud and Distributed Computing
  • What is cloud computing?
  • Cloud deployment models
  • Cloud computing patterns
  • Features of cloud computing
  • Cloud versus distributed computing
  • Cloud service providers
  • AWS.
  • Amazon EC2
  • Amazon S3
  • Amazon SQS
  • Amazon CloudFront
  • Amazon SimpleDB
  • Writing a distributed application on AWS
  • Docker CaaS
  • CaaS
  • Characteristics of Docker CaaS
  • Docker CaaS platform components
  • Eclipse integration for a Docker container
  • Deploying a sample Java application to Tomcat with Docker
  • Java 9 support
  • Spring Boot
  • Spring Cloud
  • Spring Cloud Data Flow
  • Summary
  • Chapter 8: Big Data Analytics
  • What is big data?
  • Big data characteristics
  • Volume
  • Variety
  • Velocity
  • Veracity
  • NoSQL databases
  • Hadoop, MapReduce, and HDFS
  • Hadoop
  • HDFS (Hadoop Distributed File System)
  • MapReduce
  • Cloud computing for Hadoop
  • Dynamic Distributed Dimensional Data Model (D4M)
  • Distributed computing for big data
  • ZooKeeper for distributed computing
  • Summary
  • Chapter 9: Testing, Debugging, and Troubleshooting
  • Challenges in testing distributed applications
  • Standard testing approach in software systems
  • Unit testing
  • Mocking the dependencies
  • Continuous Integration (CI)-based unit testing
  • System testing
  • System integration testing
  • User Acceptance Testing
  • Cloud distributed application testing
  • Latest tools for testing Java distributed applications
  • JUnit
  • JTest
  • TestNG
  • Arquillian
  • The Grinder
  • JWalk
  • Mockito
  • PowerMock
  • Debugging and troubleshooting distributed applications
  • Summary
  • Chapter 10: Security
  • Security issues and concerns
  • Two-way Secure Sockets Layer (SSL) implementation
  • Two-way SSL implementation for web services
  • Allow the secured calls in server application
  • Generate a client program as a web service client with a two-way SSL
  • Cloud computing security
  • Security enhancements in Java 9
  • Datagram Transport Layer Security
  • TLS Application Layer Protocol Negotiation Extension
  • OCSP stapling for TLS
  • Summary
  • Index.