www-jcp-open mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Loughran <ste...@apache.org>
Subject jcp319: high availability specs
Date Fri, 19 Oct 2007 13:14:36 GMT

Worth noting that Ericsson have just proposed a new JSR on high 
availability:

http://jcp.org/en/jsr/detail?id=319

An availability management framework shall coordinate redundant 
resources within a cluster to deliver a system with no single point of 
failure by:

     * - deciding the distribution of software resources across the cluster
     * - controlling the instantiation/activation and the 
deactivation/termination of software resources
     * - monitoring the health of the resources
     * - handling error detection, recovery and escalation
     * - supporting administrative operations on framework entities


The purpose of the Availability Management for Java is to enable 
availability frameworks to supervise and to control Java runtime units 
in a standardized way. The API has the following goals:

     * - It shall not specify the availability management framework 
itself but it shall only specify the means by which the framework can 
supervise and control the Java units within a JVM. The means by which 
the framework instantiates JVMs and communicates with the JVMs are 
outside the scope of the specification. The specification will define 
the local interactions within one JVM only.
     * - It shall allow different service providers to provide support 
for specific availability frameworks, standardized or proprietary. It is 
required that a service provider for the standardized AMF (Availability 
Management Framework) of SA Forum shall be feasible.
     * - It shall be designed with Java EE as the main target, although 
parts of the specification will also be useful on Java SE. The 
specification has to consider the constraints set by the component 
models of Java EE.
     * - It shall specify a basic set of features that can be considered 
as useful for Java EE and possible to support by most availability 
management frameworks. This implies that only a subset of the features 
of AMF will be supported.
     * - It shall support Java EE applications that are not at all, to 
some extent or completely aware of the control of the availability 
management framework. It is anticipated that the main part of the 
specification is implemented in the Java EE server and that existing 
Java EE applications can take advantage of the availability support 
without any changes.
     * - It shall not handle all aspects of clustered Java systems. 
Especially it shall not specify any state replication solution, although 
it may specify that the API can give hints to such replication solutions 
in the form of reasons for the activation or the deactivation of a unit.


Note also:

The RI and the TCK will be developed in open source and can be delivered 
as stand-alone or as a part of Java EE 5.

----------

As my employer is one of the supporters, clearly it is an excellent idea 
that we should all implement.

I will make a couple of observations, though
  * there's an explicit bias towards the Service Availability Forum's 
specs: see http://www.saforum.org/home for details. Others will have to 
assess whether that is good or bad
  * it would be good to know which license the RI and TCK will be under :)

Personally, I'd like to think how this integrates with (a) tomcat and 
(b) OSGi. The proposal "has to consider the constraints set by the 
component models of Java EE", which is both pragmatic and true. I just 
think we can do a lot of HA without the app server, and indeed, it is 
only part of the problem: you want your apache derby DB to be HA too, 
you want your Mina server to be fault tolerant. and you have the right 
to deploy 500 copies of tomcat for as long as amazon EC2 approves your 
credit card balance.

There are already some OSS-ish implementations of SAF underway
http://developer.osdl.org/dev/openais/ (C, BSD-like)
http://www.openhpi.org/ (BSD, low level, bundled into some linux distros)
http://www.opensaf.org/ (High-Availability Operating Environment 
Software License)

I think you'd have to look very hard at the latter's license ( 
http://www.opensaf.org/license ) to see if it meshed with Apache, or 
indeed GPL:  , as it includes specific field of use restrictions w.r.t 
patents, as in "Non-Assertion of Patents for Non-Commercial 
Use"...therefore it would be important to make sure the stuff that came 
out of the JCP wasn't quite so incompatible.


-steve

Mime
View raw message