Java Parallel Processing Framework. Presentation Road Map What is Java Parallel Processing Framework JPPF Features JPPF Requirements JPPF Topology JPPF.

Slides:



Advertisements
Similar presentations
Current methods for negotiating firewalls for the Condor ® system Bruce Beckles (University of Cambridge Computing Service) Se-Chang Son (University of.
Advertisements

Welcome to Middleware Joseph Amrithraj
COM vs. CORBA.
Remote Procedure Call Design issues Implementation RPC programming
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
Copyright 2009 FUJITSU TECHNOLOGY SOLUTIONS PRIMERGY Servers and Windows Server® 2008 R2 Benefit from an efficient, high performance and flexible platform.
Technical Architectures
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
Distributed Object Computing Weilie Yi Dec 4, 2001.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 8 Introduction to Printers in a Windows Server 2008 Network.
© 2004 IBM Corporation BEA WebLogic Server Introduction and Training.
Microsoft ® Application Virtualization 4.5 Infrastructure Planning and Design Series.
© 2010 VMware Inc. All rights reserved VMware ESX and ESXi Module 3.
Understanding and Managing WebSphere V5
Tomcat Celsina Bignoli History of Tomcat Tomcat is the result of the integration of two groups of developers. – JServ, an open source.
SharePoint Portal Server 2003 JAMES WEIMHOLT WEIDER HAO JUAN TURCIOS BILL HUERTA BRANDON BROWN JAMES WEIMHOLT INTRODUCTION OVERVIEW IMPLEMENTATION CASE.
Chapter 13: Sharing Printers on Windows Server 2008 R2 Networks BAI617.
Microsoft ® Application Virtualization 4.6 Infrastructure Planning and Design Published: September 2008 Updated: February 2010.
Course 201 – Administration, Content Inspection and SSL VPN
Chapter 5 Roles and features. objectives Performing management tasks using the Server Manager console Understanding the Windows Server 2008 roles Understanding.
Hands-On Microsoft Windows Server 2008 Chapter 1 Introduction to Windows Server 2008.
SOA, BPM, BPEL, jBPM.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Introduction to Networking Concepts. Introducing TCP/IP Addressing Network address – common portion of the IP address shared by all hosts on a subnet/network.
Hands-On Microsoft Windows Server 2008 Chapter 1 Introduction to Windows Server 2008.
11 Copyright © 2005, Oracle. All rights reserved. Configuring the Oracle Network Environment.
Remote OMNeT++ v2.0 Introduction What is Remote OMNeT++? Remote environment for OMNeT++ Remote simulation execution Remote data storage.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
INSTALLING MICROSOFT EXCHANGE SERVER 2003 CLUSTERS AND FRONT-END AND BACK ‑ END SERVERS Chapter 4.
Firewall and Internet Access Mechanism that control (1)Internet access, (2)Handle the problem of screening a particular network or an organization from.
Appendix B Planning a Virtualization Strategy for Exchange Server 2010.
Enterprise Java Beans Part I Kyungmin Cho 2001/04/10.
Submitted by: Shailendra Kumar Sharma 06EYTCS049.
第十四章 J2EE 入门 Introduction What is J2EE ?
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Module 11: Implementing ISA Server 2004 Enterprise Edition.
Introduction to the Adapter Server Rob Mace June, 2008.
Remote Access Using Citrix Presentation Server December 6, 2006 Matthew Granger IT665.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
Client Call Back Client Call Back is useful for multiple clients to keep up to date about changes on the server Example: One auction server and several.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
11 CLUSTERING AND AVAILABILITY Chapter 11. Chapter 11: CLUSTERING AND AVAILABILITY2 OVERVIEW  Describe the clustering capabilities of Microsoft Windows.
Module 10: Windows Firewall and Caching Fundamentals.
Introduction TO Network Administration
NJIT 1 Apache Tomcat (Version 6.0) THETOPPERSWAY.COM.
Enterprise Computing with Jini Technology Mark Stang and Stephen Whinston Jan / Feb 2001, IT Pro presented by Alex Kotchnev.
Selenium server By, Kartikeya Rastogi Mayur Sapre Mosheca. R
Deploying Highly Available SQL Server in Windows Azure A Presentation and Demonstration by Microsoft Cluster MVP David Bermingham.
Configuring Print Services Lesson 7. Print Sharing Print device sharing is another one of the most basic applications for which local area networks were.
Chapter 4: server services. The Complete Guide to Linux System Administration2 Objectives Configure network interfaces using command- line and graphical.
Planning Server Deployments Chapter 1. Server Deployment When planning a server deployment for a large enterprise network, the operating system edition.
Introduction to threads
VMware ESX and ESXi Module 3.
CONFIGURING A MICROSOFT EXCHANGE SERVER 2003 INFRASTRUCTURE
Open Source distributed document DB for an enterprise
Outline SOAP and Web Services in relation to Distributed Objects
Spark Presentation.
Network Load Balancing
Chapter 4: Multithreaded Programming
Distribution and components
Outline SOAP and Web Services in relation to Distributed Objects
Introduction to J2EE Architecture
Chapter 2: The Linux System Part 1
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
Multithreaded Programming
Presentation transcript:

Java Parallel Processing Framework

Presentation Road Map What is Java Parallel Processing Framework JPPF Features JPPF Requirements JPPF Topology JPPF Programming JPPF API JPPF and Networking

Java Parallel Processing Framework JPPF is an open source Grid Computing platform written in Java that makes it easy to run applications in parallel, and speed up their execution by orders of magnitude. Write once, deploy once, execute everywhere! It is a grid toolkit (library) for Java that makes it easy to run your applications in parallel.

JPPF features A JPPF grid can be up and running in minutes Simple programming model that abstracts the complexity of distributed and parallel processing. Highly scalable, distributed framework for the parallel execution of cpu intensive tasks. Seamless integration with leading J2EE application servers. Graphical and programmatic tools for fine-grained monitoring and administration Fault-tolerance and self-repair capabilities ensure service and reliability. A set of fully documented sample applications of JPPF to real-life problems Very flexible and business-friendly open source licensing

JPPF 1.8 installation Requirements  Any platform with Java 2, Standard Edition (J2SE) 5.0 or later.  Apache Ant or later. At least 512 MB of RAM.  The latest version of the JPPF source code. It can be found on the JPPF download page. The name of the file should be jppf- full-src-x.y.z.bbbb-yyyymmdd.zip

JPPF Topology

JPPF Topology Features JPPF can be extended to include many servers, communicating together in a peer-to-peer topology. In this topology, each server is seen by its peers as a node, and sees its peers as clients. There are a number of major advantages to this design: It enables a greater scalability of the JPPF grid, by allowing the "pluging-in" of additional servers dynamcally. This way, a server can delegate a part of its load to other servers. No matter how many servers are present, nodes and clients communicate with them in the exact same way Peer server connections benefit from the same failover and recovery features available to nodes and clients

JPPF High Level Architecture

JPPF Supported Platforms Operating Systems JPPF will work with any OS supporting a Java JVM or later, including: Linux and Unix platforms (32 and 64 bits) Windows 2000, XP, 2003 (32 and 64 bits) JVM JPPF has been tested witth he following JVMs: Sun JDK Sun JDK 6 IBM JVM 1.5.0

JPPF Programming Client Implementation The client has to split up the calculations into pieces that are executed in a single server node, and pass them to the JPPF framework. The atomic portions that are executed in a JPPF node are called tasks. It is up to the client application to define a reasonable part of the complete algorithm as a task. Small tasks may cause a high transport overhead, while large tasks may cause poor parallelism in execution.

JPPF Programming A task that can be submitted to the JPPF framework for execution must be a specialization of the JPPFTask. It must at least implement the run() method. The run() method contains the code that is executed in a JPPF node. The run() method must store the result of the calculation using the setResult() method.

JPPF Programming Task Submission Tasks are submitted to the JPPFClient instance as a List of JPPFTask instances. The list is passed to the submit() method, and a List of JPPFTask instances is returned, containing the results.

JPPF Programming Task Results The result of a submission of a task list is returned by the submit() method. Each of the returned JPPFTask instances contains the result of this specific task, or the Exception if the execution failed.

JPPF API JPPF provides API that unifies the way to write a JPPF tasks and to submit tasks and obtain tasks execution results. This are some JPPF package include classes that contain important JPPF API Org.jppf.client Org.jppf.client.JPPFJob Org.jppf.server Org.jppf.node Org.jppf.security

JPPF API All Classes are found in JPPF documentation page

JPPF driver and administration monitoring JPPF node and task monitoring it is now possible to receive notifications from the nodes or from tasks being executed. Connection status Execution status Set of methods that monitor node and task

JPPF driver and administration monitoring Monitoring Tool

JPPF driver and administration monitoring Administration Support Task timeout: tasks are canceled after a given amount of time or at a specific date/time. Task cancellation and restart. Set of methods that task administration

JPPF driver and administration monitoring Administration Tool

JPPF Resource Adaptor The JPPF Resource Adapter is JCA-compliant resource adapter module that encapsulates a JPPF client. It provides J2EE application servers with an access to JPPF grid services. It is intended for deployment as either a standalone module or embedded within an enterprise application, while preserving the ease of use of JPPF.

JPPF Resource Adaptor

Resource Adaptor Features Supports a pool of connections to a single JPPF driver Supports disconnection from, and reconnection to, a JPPF driver Compliant with the JCA 1.5 specifications API similar to that of the standard JPPF client (submit(tasks, dataProvider)) No transaction support

JPPF And Networking The TCP port multiplexer JPPF requires at least 3 TCP ports to function. In network environments where a policy imposes the use of a firewall, these ports will generally be blocked, preventing any traffic through unauthorized ports. This situation is very common, and in the case of JPPF, is very difficult, even nearly impossible, to work around. To address this situation, we have implemented a tool called TCP port multiplexer, that enables the routing of network traffic from multiple ports to a single port on one side, and the routing of the same traffic from a single port to multiple ones on the other side. With this tool, it becomes possible to work with JPPF in firewalled environments, without having to deploy a complex hardware/software infrastructure.

JPPF And Networking To understand how the multiplexer works and how it integrates with a JPPF grid, let's take the example of a typical JPPF configuration: The JPPF client, server and node are all on separate machines and use the default ports 11111, and The network environment includes a firewall that will only let traffic through port 443

JPPF And Networking JPPF and network Architecture A directed red arrow represents an incoming connection. The small circle at one end means that the corresponding component is listening for connections on the specified port.

JPPF And Networking This architecture bears a number of remarks: Nodes and clients connect to the multiplexer as if it were a local JPPF server The JPPF server accepts connections from the multiplexer as if they came from local clients and nodes The multiplexing and demultiplexing of the network traffic is completely transparent to the JPPF components As additional network routing steps are added, a performance decrease should be expected, compared to a non-multiplexed JPPF grid In this configuration, management and monitoring of the nodes and server is not possible, and should be disabled for the nodes and servers behind a firewall

JPPF And Networking Multiplexer Configuration The multiplexer plays a different role, depending on whether it is on the JPPF server machine or not: A multiplexer on a JPPF server host only needs to listen to connections on a multiplexing port A multiplexer on a JPPF client or node host binds to the JPPF ports, as if it were a server. It needs to know which ports to bind to, and for each bound port which remote multiplexer to route the traffic to.

Multiplexer Configuration

JPPF And Networking Full Multiplexer Configuration Example For Server Host:

JPPF And Networking

Java Parallel Processing Framework Reference