Table of Contents 1.1 Project/Component Working Name 2.1 Project Description 3.1 Problem Area 4.1 Details 1. Introduction1.1. Project/Component Working Name SAF/AMF support in SailFin 1.2. Name(s) and e-mail address of Document Author(s)/Supplier Nandini Ektare : nandini.ektare@sun.com Hong Zhang : hong.zhang@sun.com 1.3. Date of This Document 09/17/2007 2. Project Summary2.1. Project Description Enable support for AMF (Availability Management Framework) in an environment where availability of SailFin instances is managed by SAF (Service Availability Framework) based middleware. 2.2. Risks and Assumptions Definition and Configuration of SailFin cluster topology / application (un)deployments is still done by the SailFin Domain Application Server (aka DAS). The one-pager addresses management of SailFin cluster runtime only. The translation of the domain configuration information (presently available in DAS) to AMF understandable form is done using separate SailFin tools. Availability and stability of these translation tools, though orthogonal, is core to proper functioning of the presented solution. 3. Problem Summary3.1. Problem Area Production deployments of the SailFin need the ability to leverage the SAF implementations which are gaining popularity in the telecommunications industry as they allow system designers to build highly available applications that are interoperable and portable across a variety of compliant middleware and platforms.
This one-pager proposes a mechanism to plug SailFin into a SAF compliant implementation.
More information on SA Forum efforts, their two interface specifications: AIS (Application Interface Specification) and HPI (Hardware Platform Interface) and role of AMF within the AIS is available here
Within SAF, AMF specifies a software entity that provides service availability by coordinating redundant resources within a cluster to deliver a system with no single point of failure. This framework provides a set of APIs to enable highly available applications. It drives the high availability state of various system components, and monitors their health by invoking callback functions of these components. It also manages the readiness state without exposing it to components and further allows a component to query the framework for information about a given component's high availability state, using functions defined in the set AMF APIs. 3.2. Justification 4. Technical Description4.1. Details Start/Stop of Instances As part of providing service availability through AMF, AMF controls start/stop of the instances which is traditionally done by the Node Agent. AMF starts instances through the existing MBean interface in Node Agent. AMF stops instances using the J2EEServer JSR-77 MBean present in the Server Instance.
Note: Node Agent does synchronization in a split fashion. Preparation to synchronize is done by Node Agent and actual synchronization is done in a separate Sync VM. If this functionality could be separated out and exposed individually AMF can use that and dependency on Node Agent will be completely removed.
A system-all LifeCycle Module within DAS and instances will load the JAA-AMF provider code. This can be handled by creating the domain with a profile like "amf". For details on profiles see GlassFish Profiles Specification. When it is done this way, it applies uniformly for all Server Instances including the DAS. Since Node Agent does not have the equivalent entity, this logic is embedded in the NodeAgent startup Alternatively an equivalent extensible entity could be introduced in Node Agent, but it's not clear who else will use this extension. So alternative may not be required. The Provider code will be in the form of a native library. Add details of the library name Every Instance obtains an environment variable "SA_AMF_COMPONENT_NAME" during startup Start/Stop of Application In addition to managing the starting and stopping of the instances, the AMF also manages the starting and stopping of the applications deployed in the instances. AMF will manage the starting and stopping of the applications through JSR77 MBean start/stop interface.
Note: Definition/configuration of instances forming the cluster and deployment/undeployment of the applications to this cluster are still the responsibility of DAS and Node Agent. 4.2. Bug/RFE Number(s) Add ids for --startinstances, --restartinstances RFEs 4.3. In Scope Start/Stop of SailFin Instances by AMF Loading AMF provider plug-in during SailFin instance startup Start/Stop of Applications deployed on SailFin Instances 4.4. Out of Scope Definition/configuration of clusters and instances in the SailFin and their translation to AMF` Deployment/Undeployment of the applications to this cluster. 4.5. Interfaces 4.5.1 Exported Interfaces |
||||
// Disclose interfaces this project imports. |
||||
4.5.3 Other interfaces (Optional) // Any private interfaces that may be of interest? |
||||
Interface |
Stability |
Exporting Project: Name, Specification or other Link. |
Comments |
|
com.sun.appserver.nodeagent.NodeAgentMBean |
Since 8.1 |
StartInstance |
Either need to make this MBean available in PlatformMBeanServer or the JAA-AMF Provider native code can call into the Appserver's MBeanServer. |
|
add the JSR 77 MBean name |
Since 8.1 |
StopInstance |
|
|
|
|
|
|
|
4.6. Doc Impact Yes. Additional options to de-couple Node agent and instance lifecycle management need to be documented and the impact of delegating availability to AMF instead of Node agent need to be captured 4.7. Admin/Config Impact Asadmin CLI for start-node-agent has a new –-stopinstances=true/false option –-restartinstances=true/false option 4.8. HA Impact The proposal provides a way to replace existing HA capabilities within SailFin with the industry standards proposed by SAF for achieving high-availability. 4.9. I18N/L10N Impact None. 4.10. Packaging & Delivery // Add packages names Installation scripts would provide the JAA-AMF Provider native library. Again this may not be seen as an issue for this one pager, because it will be taken care of in the broader SailFin initiative FS. 4.11. Security Impact None. 4.12. Compatibility Impact None. 4.13. Dependencies add the link for FS documentation of SailFin 5. Reference DocumentsSAF and GlassFish : An Architectural document 6. Schedule6.1. Projected Availability November 2007 |