User Terminal Service Constituent module IN-Lab report 93/8 Trygve Reenskaug, Taskon

advertisement
User Terminal
Service Constituent module
IN-Lab report 93/8
Trygve Reenskaug, Taskon
Carl Petter Swensson, Taskon
28 July 1993
The purpose of this module is to specify a terminal which may represent a User in the
context of service invocation.
Client: TF
Client reference: IN-Lab report 93/8
Taskon reference: Draft
File: d:\work.t12\ooram.t12\oo-pres.t12\1993\931206-in-lab2.t12\in2-user.rm4
Last update: 15 September 1993 at: 06:45
Print generated: 1 Juni 1998 at: 19:01
Taskon, Gaustadalléen 21, N-0371 Oslo 3 Norway.
TASKON
Work Environments
Tel. + (47) 22 95 86 31 Telefax: + (47) 22 60 44 27
15 September 1993 at: 06:45
Report overview
User Terminal Service Constituent module IN-Lab report 93/8
©Taskon 1998. Page 1
15 September 1993 at: 06:45
Introduction
Chapter 1
Introduction
This document describes the User Terminal OOram Module on the service sub-layer of the
Service Constituent Creator Layer.
IN Service
Layers
Service
Information Entities
User and Subscriber
Layers
Actors
Subscriber
and End User
Service Objects
Service Provider
Layer
Service Specification
Contract
Dealer
Service Creator
Layer
Conceptual Schema
Service vendo
User SM
Service Constituent
Creation Layers
Calling SM
Called SM
Service
Programmer
AbstrConn SM
Invocation SM
Network Provider
Layer
Network SM
Administration
programmer
Switch controll
programmer
Figure 1. IN-Lab2 support value chain.
The module is a skeleton module which defines the minimum terminal functionality needed to
perform a telephone connection invocation.
User Terminal Service Constituent module IN-Lab report 93/8
©Taskon 1998. Page 2
15 September 1993 at: 06:45
Overview of the User Terminal Module
Chapter 2
Overview of the User Terminal Module
This skeleton module only contains a role model representing the user interface and an object
type specification specifying the example terminal as seen from the Service Domain (the
internals of the terminal are not shown in this example).
Figure 2. Model structure of the User Terminal Module.
User Terminal Service Constituent module IN-Lab report 93/8
©Taskon 1998. Page 3
15 September 1993 at: 06:45
Models Exported from the User Terminal Module
Chapter 3
Models Exported from the User Terminal Module
There are no export models in this module.
User Terminal Service Constituent module IN-Lab report 93/8
©Taskon 1998. Page 4
15 September 1993 at: 06:45
Role Models of the User Terminal Module
Chapter 4
Role Models of the User Terminal Module
There is one role model in this module which defines how a telephone connect request is
initiated.
4.1
The terminal user interface (Tel2UserTerm) {Role Model}
Report including the following selections automatically generated 28 July 1993: Role
Models; Area of Concern stimuli; Role list diagram, role explanation, role import map;
Scenarios explanation; Message Sets port explanation, contract explanation, message
explanation; FSM
4.1.1
Area of Concern
This role model is a minimal representation of the terminal user interface.
Stimulus messages
1. Term2Client>>telephoneConnectTo:
4.1.2
The Roles
Term2
Client
u
Term2
User
1. Term2Client {Role}. The client object will probably be some object in the User's terminal
which is associated with the user interface.
2. Term2User {Role}. This object represents an object in the user's terminal which can initiate,
manage and support a full duplex, point-to-point telephone connection in the Switch.
User Terminal Service Constituent module IN-Lab report 93/8
©Taskon 1998. Page 5
15 September 1993 at: 06:45
4.1.3
Role Models of the User Terminal Module
Message Sets
1. Term2Client {Role}
-
user (u) {Port}.
-
Term2User<Term2Client {Contract}.
-
telephoneConnectTo: calledUserID {Message}.
User Terminal Service Constituent module IN-Lab report 93/8
©Taskon 1998. Page 6
15 September 1993 at: 06:45
Object type specifications in the User Terminal Module
Chapter 5
Object type specifications in the User Terminal Module
5.1
TelA2 User-Service Interaction SPC (TelA2UserSPC) {Type
Specification}
Report including the following selections automatically generated 28 July 1993: Type
Specifications; Area of Concern stimuli; Role list diagram, role explanation, role import map;
Scenarios explanation; Message Sets port explanation, contract explanation, message
explanation; FSM
5.1.1
Area of Concern
Defines the interaction between the User object and the Calling and Called Telephone services.
User Terminal Service Constituent module IN-Lab report 93/8
©Taskon 1998. Page 7
15 September 1993 at: 06:45
5.1.2
Object type specifications in the User Terminal Module
The Roles
Inv
Mngr
Inv2
Analzr
Term2
Client
Term2
User
Term2
Srvc
1. User Terminal objectATerm (Term2User) {Type}. This object represents a User (or more
properly, the user's terminal) which can initiate, manage and support a full duplex, point-topoint telephone connection in the Switch.
This object represents a User (e.g. part of a Terminal) which can accept or refuse a request
for a full duplex, point-to-point connection in the Switch.
This object represents any client of the Invocation Manager, an Analyzer and possibly one of
the Analyzer's Services.
This object represents an object in the user's terminal which can initiate, manage and support
a full duplex, point-to-point telephone connection in the Switch.
2. Term2ServiceAServ (Term2Srvc) {Type}. This object represents a Service which can
initiate, manage and support a full duplex, point-to-point connection in the Switch.
This role represents the called part of a telephone connection service. It is responsible for
establishing a Leg in the Switching Domain from the Called User to a Connection Point
provided by the A-Service. We assume this functionality is encapsulated in the object, and
do not specify how it accomplishes it.
The Service role represents the target application for the client. Any service to be invocated
by this model must have an object which plays this role.
User Terminal Service Constituent module IN-Lab report 93/8
©Taskon 1998. Page 8
15 September 1993 at: 06:45
Object type specifications in the User Terminal Module
3. InvManager (InvMngr) {Type}. The Invocation Manager's role is to accept requests from
Clients and start the Invocation Analyzer (IA) for further processing and to start specific
services on request by the IA. The Invocation Analyzer is unique for a given User, and an
Invocation Analyzer can be responsible for analyzing requests for many services The
Invocation Manager can be considered a part of the operating system of the network.
4. Inv2Analzr {Type}. The Invocation Analyzer must perform a client-dependent analysis that
will identify the particular service requested. This implies that the Invocation Analyzer must
analyze the information received from the client, look up relevant information in its internal
databases, load the service object and finally initiate it with the required information.
5. Term2Client {Type}. The client object will probably be some object in the User's terminal
which is associated with the user interface.
TelA2UserSPC
TelA2UserEXP
TelB2UserEXP
Inv2InvFW
Tel2UserTerm
Term2User
TelA2User
TelB2User
Inv2Client
Term2User
Term2Srvc
TelA2Srvc
TelB2Srcv
Inv2Serv
InvMngr
InvMngr
Inv2Analzr
Inv2Analzr
Term2Client
Term2Client
Table 3. Import relationships for TelA2 User-Service Interaction SPC {RMTypeSpecification} .
User Terminal Service Constituent module IN-Lab report 93/8
©Taskon 1998. Page 9
15 September 1993 at: 06:45
Monitored executions
Chapter 6
Monitored executions
There are no Monitored executions in this module.
User Terminal Service Constituent module IN-Lab report 93/8
©Taskon 1998. Page 10
15 September 1993 at: 06:45
Implementation for monitored execution
Appendix 1
Implementation for monitored execution
App 1.1
TelA2 User-Service Interaction SPC (TelA2UserSPC) {Type
Specification}
Report including the following selections automatically generated 28 July 1993: Type
Specifications; Implementation
App 1.1.1
TelA2 User-Service Interaction SPC {Implementation}
Inv2Client1 subclass: #Term2User0
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'ZZZInLab-User2+'
This object represents a User (or more properly, the user's terminal) which can initiate, manage and
support a full duplex, point-to-point telephone connection in the Switch. This object represents a Terminal
which can accept or refuse a request for a full duplex, point-to-point connection in the Switch. This object
represents any client of the Invocation Manager, an Analyzer and possibly one of the Analyzer's Services.
An object representing a User in the service Domain.
Instance variables:
Subclasses should not implement methods for:
Subclasses must implement the following messages:
TelA2User<TelA2Srvc
userBWaiting:
TelB2User<TelB2Service
openRequest
Term2User0 subclass: #Term2User1
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'ZZZInLab-User2+'
Term2User1 class>>initialize (class initialization)
initialize
ownProtocol := IdentityDictionary new
at: #telephoneConnectTo: put: #(#Inv2Install1Class );
yourself.
User Terminal Service Constituent module IN-Lab report 93/8
©Taskon 1998. Page 11
15 September 1993 at: 06:45
Implementation for monitored execution
Term2User1>>obeysProtocol: (InvClient<InvAnalzr)
obeysProtocol: aType
" Return true iff the Client obeys the given protocol. "
^#TelA = aType
Term2User1>>connectTo: (examples)
connectTo: toSerId
service := invocAnalyzer getService: #TelA for: self guard.
service connect: #Duplex from: self guard to: toSerId qoc: 2400.
Term2User1>>example4ConnectTo: (examples)
example4ConnectTo: toSerId
service := invocAnalyzer getService: #TelA for: self guard.
service connect: #Duplex from: self guard to: toSerId qoc: 2400.
Term2User1>>telephoneConnectTo: (examples)
telephoneConnectTo: calledUserID
service := invocAnalyzer getService: #TelA for: self guard.
service connect: #Duplex from: self guard to: calledUserID qoc: 2400.
Term2User1>>userBWaiting: (TelA2User<TelA2Srvc)
userBWaiting: accessPoint
self halt: 'not implemented'
Term2User1>>openRequest (TelB2User<TelB2Service)
openRequest
self dpsError: 'not implemented'.
^true
User Terminal Service Constituent module IN-Lab report 93/8
©Taskon 1998. Page 12
TABLE OF CONTENTS
Chapter 1
Introduction
2
Chapter 2
Overview of the User Terminal Module
3
Chapter 3
Models Exported from the User Terminal Module
4
Chapter 4
Role Models of the User Terminal Module
5
The terminal user interface (Tel2UserTerm) {Role Model}
Area of Concern
The Roles
Message Sets
5
5
5
6
Object type specifications in the User Terminal Module
7
TelA2 User-Service Interaction SPC (TelA2UserSPC) {Type
Specification}
Area of Concern
The Roles
7
4.1
4.1.1
4.1.2
4.1.3
Chapter 5
5.1
5.1.1
5.1.2
7
8
Chapter 6
Monitored executions
10
Appendix 1
Implementation for monitored execution
11
TelA2 User-Service Interaction SPC (TelA2UserSPC) {Type
Specification}
TelA2 User-Service Interaction SPC {Implementation}
11
App 1.1
App 1.1.1
11
User Terminal Service Constituent module IN-Lab report 93/8
<i>
INDEX
Term2User1 class>>initialize (class initialization)
11
Term2User1>>connectTo: (examples)
12
Term2User1>>example4ConnectTo: (examples)
12
Term2User1>>obeysProtocol: (InvClient<InvAnalzr)
12
Term2User1>>openRequest (TelB2User<TelB2Service)
12
Term2User1>>telephoneConnectTo: (examples)
12
Term2User1>>userBWaiting: (TelA2User<TelA2Srvc)
12
User Terminal Service Constituent module IN-Lab report 93/8
<i>
Download