📄 ri.html
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 97">
<meta name="Template" content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
<meta name="GENERATOR" content="Mozilla/4.61 [en] (Win95; I) [Netscape]">
<meta name="Author" content="KianPeng Yong">
<title>Reference Implementation</title>
</head>
<body text="#000000" bgcolor="#FFEEDD" link="#0000FF" vlink="#800080" alink="#FF0000">
<center><b><font size=+3>Java APIs for the Integrated</font></b>
<p><b><font size=+3>Network (JAIN) Framework</font></b>
<p><font color="#000000"><font size=+3>JAIN OAM API Reference Implementation
Specification</font></font></center>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<center><img SRC="javalogo.gif" height=88 width=52></center>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<hr SIZE=0 WIDTH="100%">
<br>
<ul>
<li>
<b><font face="Arial,Helvetica"><font size=+1><a href="#Introduction">1.0
Introduction</a></font></font></b></li>
<li>
<b><font face="Arial,Helvetica"><font size=+1><a href="#2.0 Objectives">2.0
Objectives and scope</a></font></font></b></li>
<li>
<b><font face="Arial,Helvetica"><font size=+1><a href="#3.0 User Guide">3.0
Initial set up for RI</a></font></font></b></li>
<li>
<b><font face="Arial,Helvetica"><font size=+1><a href="#4.0">4.0 Limitations</a></font></font></b></li>
<li>
<b><font face="Arial,Helvetica"><font size=+1><a href="#5.0">5.0 Abbreviations</a></font></font></b></li>
<li>
<b><font face="Arial,Helvetica"><font size=+1><a href="#6.0">6.0 Control</a></font></font></b></li>
<br> </ul>
<hr SIZE=0 WIDTH="100%">
<p><b><font color="#000000"><font size=+2>1.0 Introduction</font></font></b><a NAME="Introduction"></a>
<ol>Java APIs for the Integrated Network (JAIN) Framework brings Service
Portability and Network Convergence into the Telephony Network. JAIN encompasses
a standard set of interfaces for service creation and a number of standard
interfaces for service execution.</ol>
<hr WIDTH="100%">
<p><b><font color="#000000"><font size=+2>2.0 Objectives and scope</font></font></b><a NAME="2.0 Objectives"></a>
<blockquote>The purpose of this document is to
<ul>
<li>
Outline the requirements and procedure for setting up the Reference Implementation
(RI) which JAIN OAM applications can run against.</li>
<li>
Outline the procedure for sending messages to the JAIN OAM RI.</li>
<li>
List the scope and limitations of the JAIN OAM RI.</li>
</ul>
The JAIN OAM RI will emulate the functions of an SS7 stack management system
(but will not be an SS7 stack management system) in order to verify the
requirements within this specification. The intention of the JAIN OAM RI
is not to implement an SS7 stack management system or to replace vendor
SS7 stack management systems. The purpose of the JAIN OAM RI is to provide
a means to verify that JAIN OAM applications are compatible with the JAIN
OAM specification. The RI can be used in order to help develop a JAIN OAM
application.</blockquote>
<b><font color="#000000"><font size=+2>2.1 Support Software</font></font></b>
<blockquote>Several classes developed with JDK1.2 and the JAIN OAM API
specification will be used while running the RI.</blockquote>
<blockquote>1. The Reference Implementation is utilized by implementing
the JAIN OAM API specification.
<br>2. Java Virtual Machine.
<br>3. A JAIN OAM application (TCK or a vendor implementation).</blockquote>
<p><br>
<hr WIDTH="100%">
<br><b><font size=+2>3.0 Initial set up for RI</font></b><a NAME="3.0 User Guide"></a>
<ul>
<li>
Obtain an instance of the <tt>JainSS7Factory</tt> and set the vendor pathname
to "com.aepona"</li>
<li>
Create a layer manager for each protocol layer</li>
<li>
Create an <tt>ObjectName</tt> for each layer manager</li>
<li>
Optionally create an <tt>MBeanServer</tt> (JMX agent) and register the
layer managers with it</li>
<li>
Add entries for layer managers to lookup table. The lookup table serves
as a mapping between JMX <tt>ObjectName</tt>s and object references when
there is no JMX agent being used (The JMX agent would usually provide such
a mapping).</li>
</ul>
<p><br><b><font size=+1>Code Example</font></b>
<p>Initial Setup:
<p><font face="Courier New,Courier"><font size=-1> //
OBTAIN AN INSTANCE OF THE FACTORY AND SET THE VENDOR PATHNAME</font></font>
<p><font face="Courier New,Courier"><font size=-1> JainSS7Factory
ss7Factory = JainSS7Factory.getInstance();</font></font>
<p> <tt>String vendorPathName
= "com.aepona";</tt>
<p><font face="Courier New,Courier"><font size=-1> ss7Factory.setPathName(vendorPathName);</font></font>
<p><font face="Courier New,Courier"><font size=-1> try
{</font></font>
<p><font face="Courier New,Courier"><font size=-1>
// CREATE A LAYER MANAGER FOR EACH PROTOCOL LAYER</font></font>
<p><font face="Courier New,Courier"><font size=-1>
TcapLayerManagerMBean tcapLayerManager = (TcapLayerManagerMBean)ss7Factory.createSS7Object("jain.protocol.ss7.oam.tcap.TcapLayerManager");</font></font>
<p><font face="Courier New,Courier"><font size=-1>
SccpLayerManagerMBean sccpLayerManager = (SccpLayerManagerMBean)ss7Factory.createSS7Object("jain.protocol.ss7.oam.sccp.SccpLayerManager");</font></font>
<p><font face="Courier New,Courier"><font size=-1>
Mtp3LayerManagerMBean mtp3LayerManager = (Mtp3LayerManagerMBean)ss7Factory.createSS7Object("jain.protocol.ss7.oam.mtp3.Mtp3LayerManager");</font></font>
<p><font face="Courier New,Courier"><font size=-1>
Mtp2LayerManagerMBean mtp2LayerManager = (Mtp2LayerManagerMBean)ss7Factory.createSS7Object("jain.protocol.ss7.oam.mtp2.Mtp2LayerManager");</font></font>
<p><font face="Courier New,Courier"><font size=-1> }
catch (SS7PeerUnavailableException e) {</font></font>
<p><font face="Courier New,Courier"><font size=-1>
System.err.println("Cannot locate a Layer Manager implementation.\n" +
e.getMessage());</font></font>
<p><font face="Courier New,Courier"><font size=-1> }</font></font>
<p><font face="Courier New,Courier"><font size=-1> try{</font></font>
<p><font face="Courier New,Courier"><font size=-1>
// CREATE AN OBJECT NAME FOR EACH LAYER MANAGER</font></font>
<p><font face="Courier New,Courier"><font size=-1>
ObjectName tcapLayerManagerObjectName = new ObjectName(vendorPathName +
".jain.protocol.ss7.oam.tcap:type=" + OamManagedObjectMBean.OBJECT_TYPE_TCAP_LAYER_MANAGER
+ ",id=1");</font></font>
<br><font face="Courier New,Courier"><font size=-1>
ObjectName sccpLayerManagerObjectName = new ObjectName(vendorPathName +
".jain.protocol.ss7.oam.sccp: type=" + OamManagedObjectMBean.OBJECT_TYPE_SCCP_LAYER_MANAGER+
",id=1");</font></font>
<br><font face="Courier New,Courier"><font size=-1>
ObjectName mtp3LayerManagerObjectName = new ObjectName(vendorPathName +
".jain.protocol.ss7.oam.mtp3: type=" + OamManagedObjectMBean.OBJECT_TYPE_MTP3_LAYER_MANAGER+
",id=1");</font></font>
<br><font face="Courier New,Courier"><font size=-1>
ObjectName mtp2LayerManagerObjectName = new ObjectName(vendorPathName +
".jain.protocol.ss7.oam.mtp2: type=" + OamManagedObjectMBean.OBJECT_TYPE_MTP2_LAYER_MANAGER+
",id=1");</font></font>
<br><font face="Courier New,Courier"><font size=-1> }
catch (MalformedObjectNameException e) {</font></font>
<p><font face="Courier New,Courier"><font size=-1>
System.err.println("Cannot create ObjectName\n" + e.getMessage());</font></font>
<p><font face="Courier New,Courier"><font size=-1> }</font></font>
<br>
<p><font face="Courier New,Courier"><font size=-1> if(usingJMXAgent){</font></font>
<p><font face="Courier New,Courier"><font size=-1>
// CREATE AN MBEANSERVER(JMX AGENT) AND REGISTER THE LAYER MANAGERS WITH
IT</font></font>
<p><font face="Courier New,Courier"><font size=-1>
MBeanServer server = new MBeanServer();</font></font>
<p><font face="Courier New,Courier"><font size=-1>
server.registerMBean(tcapLayerManager, tcapLayerManagerObjectName);</font></font>
<br><font face="Courier New,Courier"><font size=-1>
server.registerMBean(sccpLayerManager, sccpLayerManagerObjectName);</font></font>
<br><font face="Courier New,Courier"><font size=-1>
server.registerMBean(mtp3LayerManager, mtp3LayerManagerObjectName);</font></font>
<br><font face="Courier New,Courier"><font size=-1>
server.registerMBean(mtp2LayerManager, mtp2LayerManagerObjectName);</font></font>
<p><font face="Courier New,Courier"><font size=-1> }
else {</font></font>
<p><font face="Courier New,Courier"><font size=-1>
// ADD ENTRIES FOR LAYER MANAGERS TO LOOKUP TABLES.</font></font>
<br><font face="Courier New,Courier"><font size=-1>
// THE LOOKUP TABLE SERVES AS A MAPPING BETWEEN JMX OBJECTNAMES AND OBJECT
REFERENCES</font></font>
<br><font face="Courier New,Courier"><font size=-1>
// WHEN THERE IS NO JMX AGENT (THE JMX AGENT WOULD PROVIDE SUCH A MAPPING)</font></font>
<p><font face="Courier New,Courier"><font size=-1>
tcapLayerManager.getLookupTable().put(tcapLayerManagerObjectName, tcapLayerManager);</font></font>
<br><font face="Courier New,Courier"><font size=-1>
sccpLayerManager.getLookupTable().put(sccpLayerManagerObjectName, sccpLayerManager);</font></font>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -