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>