Java 并行处理框架,JPPF 5.0 RC1 发布

jopen 10年前

JPPF是一个开放源码的网格计算框架,它可以在一个分布执行环境中 同时运行多个java应用。JPPF框架使用一个兼容JCA 1.5规范的资源适配器与J2EE应用服务器进行集成,这个适配器为服务器提供了到原始网格服务的访问。

Ease of use

  • simple APIs requiring small or no learning curve
  • automatic deployment of application code on the grid
  • ability to reuse existing or legacy objects without modification
  • "happy path" with no additional configuration
  • automatic server discovery, combinable with manual connection configuration
  • convenient reusable application template to quickly and easily start developing JPPF applications
  • straightforward Executor Service interface to the JPPF grid, with high throughput enhancements

Security

  • secure network communications via SSL / TLS
  • data encryption
  • data integrity
  • certificate-based authentication, including 2 ways (server and client) authentication
  • plain and secure communications can be used separately or together

Cloud ready

  • JPPF is ideally suited for cloud deployment
  • native dynamic topology makes cloud on-demand scaling transparent
  • multiple extensible options for server discovery in the cloud
  • documented deployment on Amazon EC2

Self-repair and recovery

  • automated node reconnection with failover strategy
  • automated client reconnection with failover strategy
  • fault tolerance with job requeuing
  • detection, recovery from hard-disconnects of remote nodes

Job checkpointing

  • automatic latest job state resubmission by the server in case of node failure
  • automatic latest job state resubmission by the client in case of server failure
  • support for maximum number of resubmissions and job timeout
  • job states can be locally persisted for recovery in case of client failure

Job-level SLA

  • job execution policies enable rule-based node filtering
  • maximum number of nodes a job can run on (grid partitioning)
  • dynamic job prioritization
  • job scheduled start date
  • job scheduled expiration date
  • broadcast jobs

Job local monitoring, persistence, recovery, failover

  • notification of job start and stop events
  • ability to store job snapshots on the fly
  • recovery of the latest job state upon application crash

Management and monitoring

  • task-level events
  • job-level events
  • server performance statistics
  • server performance charts
  • user-defined charts
  • remote server control and monitoring
  • remote nodes control and monitoring
  • cpu utilization monitoring
  • management of load-balancing
  • management and monitoring available via APIs and graphical user interface (administration console)
  • access to remote servers and nodes logs via the JMX-based logger (integrates with Log4j and JDK logging)
  • monitoring of remote JVMs health: heap and non-heap memory, cpu load, live threads and deadlock monitoring

Platform extensibility

  • All management beans are pluggable, users can add their own management modules at server or node level
  • Startup classes: users can add their own initialization modules at server and node startup
  • Security: any data transiting over the network can now be encrypted by the way of user-defined transformations
  • Pluggable load-balancing modules allow users to write their own load balancing strategies
  • Ability to specify alternative serialization schemes
  • Subscription to nodes life cycle events
  • Node initialization hooks to implement dynamic failover strategies
  • Server-side notifications of node connection events

Dynamic class loading extensions

  • update the classpath of the nodes at run-time
  • download multiple classpath resources in a single network transaction
  • remotely manage repositories of application libraries
  • new class loader delegation model enables faster class loading

Performance and resources efficiency

  • multiple configurable load-balancing algorithms
  • adaptive load-balancing adjusts in real-time to workload changes
  • memory-aware components with disk overflow
  • client-side server connection pools

Dynamic topology scaling and transformation

  • nodes can be added and removed dynamically from the grid
  • servers can be added and removed dynamically from the grid
  • servers can work alone or linked in P2P topology with other servers
  • ability to run a node in the same JVM as the server
  • from traditional HPC cluster to full-fledged P2P, to volunteer computing topology

Third-party connectors

  • J2EE connector, JCA 1.5 compliant, deployed as a standard resource adapter
  • Apache Tomcat connector

Ease of integration

Deployment modes

  • all components deployable as standalone Java applications
  • servers and nodes deployable as Linux/Unix daemons
  • servers and nodes deployable as Windows services
  • application client deployment as a Web, J2EE or GigaSpaces XAP application
  • nodes can run in idle system mode (CPU scavenging)
  • deployment on Amazon EC2

Execution modes

  • synchronous and asynchronous job submissions
  • client can execute in local mode (benefits to systems with many CPUs)
  • client can execute in distributed mode (execution delegated to remote nodes)
  • client can execute in mixed local/distributed mode with adaptive load-balancing
JPPF 发布了 5.0 的首个 RC 版本,改进内容包括:

JPPF-306 Revisit the samples to apply the job streaming pattern where applicable
JPPF-307 Server scalability: improve the thread pool handling for NIO operations
JPPF-310 Improve the handling of non-serializable tasks in the client.
JPPF-316 Improve server responsiveness when many nodes connect at once
JPPF-317 Add awaitXXX methods to the client side connection and JMX pools
JPPF-322 Properties substitutions: implement missing uses cases, improve resources usage
JPPF-332 Change all popup windows and child frames to modeless dialogs
JPPF-350 Add a CLOSED status for client to server connections
JPPF-367 Document which jars each package can be found in