6.2 Class diagrams for the Framework

29.1983GPPOpen Service Architecture (OSA) Application Programming Interface (API) - Part 1Release 1999TS

This section specifies the class diagrams that define the Framework, and proposes a way to package them.

6.2.1 Top level Framework packages

The top level view of the Framework consists of the following four packages:

Figure 6‑2: Framework top level packages

The first two packages are de-composed in the following way:

The latter two packages contain only one interface each:

 PFWFramework consists of the Service Registration Interface

 PSvcFramework consists of the Service Factory Interface

The top-level packages are de-composed as described above; between some of the resulting sub-packages there are dependencies, that reflect dependencies between any two classes in the sub-package. The following figure shows all this.

Figure 6‑3: Framework sub-packages

6.2.2 Service Discovery

Figure 6‑4: Service Discovery Class Diagrams

<<Interface>>

IpServiceDiscovery

listServiceTypes(listTypes: out TpServiceTypeNameListRef) : TpResult

describeServiceType(name: in TpServiceTypeName, serviceTypeDescription: out TpServiceTypeDescriptionRef) : TpResult

discoverService(serviceTypeName: in TpServiceTypeName, desiredPropertyList: in TpServicePropertyList, max: in TpInt32, serviceList: out TpServiceListRef) : TpResult

listSubscribedServices(serviceList: out TpServiceListRef) : TpResult

6.2.3 Trust and Security Management

Figure 6‑5: Trust and Security Management – Application and Framework Class Diagrams

6.2.3.1 IpInitial

<<Interface>>

IpInitial

initiateAuthentication(appDomain: in TpAuthDomain , authType : in TpAuthType, fwDomain: out TpAuthDomainRef) : TpResult

requestAccess(accessType: in TpAccessType, appAccessInterface; in IpOsaRef, fwAccessInterface: out IpOsaRefRef): TpResult

6.2.3.2 IpAppAuthentication

<<Interface>>

IpAppAuthentication

authenticate( prescribedMethod: in TpAuthCapability, challenge: in TpString, response: out TpStringRef) : TpResult

abortAuthentication() : TpResult

6.2.3.3 IpAuthentication

<<Interface>>

IpAuthentication

selectAuthMethod (authCaps: in TpAuthCapabiltyList, prescribedMethod: out TpAuthCapabilityRef) : TpResult

authenticate (prescribedMethod: in TpAuthCapability, challenge: in TpString, response: out TpStringRef) : TpResult

abortAuthentication() : TpResult

6.2.3.4 IpAccess

<<Interface>>

IpAccess

obtainInterface( interfaceName: in TpInterfaceName, fwInterface: out IpOsaRefRef): TpResult

obtainInterfaceWithCallback( interfaceName: in TpInterfaceName, appInterface: in IpOsaRef, fwInterface: out IpOsaRefRef): TpResult

accessCheck(serviceToken: in TpServiceToken,securityContext: in TpString, securityDomain: in TpString, group : in TpString, serviceAccessTypes: in TpString, serviceAccessControl: out TpServiceAccessControlRef): TpResult

selectService( serviceID: in TpServiceID, serviceToken: out TpServiceTokenRef): TpResult

signServiceAgreement( serviceToken: in TpServiceToken, agreementText: in TpString, signingAlgorithm: in TpSigningAlgorithm, signatureAndServiceMgr: out TpSignatureAndServiceMgrRef ): TpResult

terminateServiceAgreement( serviceToken: in TpServiceToken, terminationText: in TpString, digitalSignature: in TpString): TpResult

endAccess(endAccessProperties: in TpEndAccessProperties) : TpResult

6.2.3.5 IpAppAccess

<<Interface>>

IpAppAccess

signServiceAgreement( serviceToken: in TpServiceToken, agreementText: in TpString, signingAlgorithm: in TpSigningAlgorithm, digitalSignature: out TpStringRef): TpResult

terminateServiceAgreement( serviceToken: in TpServiceToken, terminationText: in TpString, digitalSignature: in TpString): TpResult

terminateAccess( terminationText: in TpString, signingAlgorithm: in TpSigningAlgorithm, digitalSignature: in TpString) : TpResult

6.2.4 Integrity Management

Figure 6‑6: Integrity Management – Application and Framework Class Diagrams

6.2.4.1 IpHeartBeatMgmt

<<Interface>>

IpHeartBeatMgmt

enableHeartBeat(duration: in TpDuration, appInterface: in IpAppHeartBeatRef, session: out TpSessionIDRef) : TpResult

disableHeartBeat(session: in TpSessionID) : TpResult

changeTimePeriod(duration: in TpDuration, session: in TpSessionID) : TpResult

6.2.4.2 IpAppHeartBeatMgmt

<<Interface>>

IpAppHeartBeatMgmt

enableAppHeartBeat(duration: in TpDuration, fwInterface: in IpHeartBeatRef, session: in TpSessionID) : TpResult

disableAppHeartBeat(session: in TpSessionID) : TpResult

changeTimePeriod(duration: TpDuration, session: in TpSessionID) : TpResult

6.2.4.3 IpHeartBeat

<<Interface>>

IpHeartBeat

send(session: in TpSessionID) : TpResult

6.2.4.4 IpAppHeartBeat

<<Interface>>

IpAppHeartBeat

send(session: in TpSessionID) : TpResult

6.2.4.5 IpLoadManager

<<Interface>>

IpLoadManager

reportLoad(loadLevel : in TpLoadLevel) : TpResult

queryLoadReq(serviceIDs: in TpServiceIDList, timeInterval : in TpTimeInterval) : TpResult

queryAppLoadRes(loadStatistics : in TpLoadStatisticList) : TpResult

queryAppLoadErr(loadStatisticsError : in TpLoadStatisticError) : TpResult

registerLoadController(serviceIDs: in TpServiceIDList) : TpResult

unregisterLoadController(serviceIDs: in TpServiceIDList) : TpResult

resumeNotification(serviceIDs: in TpServiceIDList) : TpResult

suspendNotification(serviceIDs: in TpServiceIDList) : TpResult

6.2.4.6 IpAppLoadManager

<<Interface>>

IpAppLoadManager

queryAppLoadReq(serviceIDs: in TpServiceIdList, timeInterval : TpTimeInterval) : TpResult

queryLoadRes(loadStatistics : in TpLoadStatisticList) : TpResult

queryLoadErr(loadStatisticsError : in TpLoadStatisticError) : TpResult

disableLoadControl(serviceIDs: in TpServiceIdList) : TpResult

enableLoadControl(loadStatistics : in TpLoadStatisticList ) : TpResult

resumeNotification() : TpResult

suspendNotification() : TpResult

6.2.4.7 IpFaultManager

<<Interface>>

IpFaultManager

activityTestReq(activityTestID: in TpActivityTestID, svcID: in TpServiceID): TpResult

appActivityTestRes(activityTestID: in TpActivityTestID, activityTestResult: in TpActivityTestRes): TpResult

svcUnavailableInd(serviceID: in TpServiceID): TpResult

genFaultStatsRecordReq(timePeriod: in TpTimeInterval, serviceIDs: in TpServiceIDList): TpResult

6.2.4.8 IpAppFaultManager

<<Interface>>

IpAppFaultManager

activityTestRes(activityTestID: in TpActivityTestID, activityTestResult: in TpActivityTestRes): TpResult

appActivityTestReq(activityTestID: in TpActivityTestID): TpResult

fwFaultReportInd(fault: in TpInterfaceFault): TpResult

fwFaultRecoveryInd(fault: in TpInterfaceFault): TpResult

fwUnavailableInd(reason: in TpFwUnavailReason): TpResult

svcUnavailableInd(serviceID: in TpServiceID, reason: in TpSvcUnavailReason): TpResult

genFaultStatsRecordRes(faultStatistics: in TpFaultStatsRecord, serviceIDs: in TpServiceIDList): TpResult

6.2.4.9 IpOAM

<<Interface>>

IpOAM

systemDateTimeQuery(clientDateAndTime : in TpDateAndTime, systemDateAndTime: out TpDateAndTimeRef) : TpResult

6.2.4.10 IpAppOAM

<<Interface>>

IpAppOAM

systemDateTimeQuery(systemDateAndTime: in TpDateAndTime, clientDateAndTime: out TpDateAndTimeRef) : TpResult

6.2.5 Service Registration

Figure 6‑7: Service Registration Class Diagram

<<Interface>>

IpServiceRegistration

registerService(serviceTypeName : in TpServiceTypeName, servicePropertyList : in TpServicePropertyList,

serviceID : out TpServiceIDRef) : TpResult

announceServiceAvailability(serviceID : in TpServiceID, serviceFactoryRef : in IpOSARef) : TpResult

unregisterService(serviceID : in TpServiceID) : TpResult

describeService(serviceID : in TpServiceID, serviceDescription : out TpServiceDescriptionRef) : TpResult

6.2.6 Service Factory

Figure 6‑8: Service Factory Class Diagram

<<Interface>>

IpSvcFactory

getServiceManager(application : in TpDomainID, serviceProperties : in TpServicePropertyList, serviceManager : out IpServiceRefRef) : TpResult