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
- Apache FTP server
- Hazelcast data grid
- Atomikos transaction manager and JDBC database
- Harnessing the power of the GPU with APARAPI
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-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