Date post: | 05-Jan-2016 |
Category: |
Documents |
Upload: | oswin-allison |
View: | 215 times |
Download: | 2 times |
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
11
B M MB M MBBrick rick MManipulation anipulation MManageranager
B M MB M MBBrick rick MManipulation anipulation MManageranager
FunctionalitiesFunctionalities
AndAnd
ArchitectureArchitectureD. DuchesneauD. Duchesneau
T. Le FlourT. Le Flour
S. LieunardS. Lieunard
FunctionalitiesFunctionalities
AndAnd
ArchitectureArchitectureD. DuchesneauD. Duchesneau
T. Le FlourT. Le Flour
S. LieunardS. Lieunard
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
22
Main functionalitiesMain functionalities• Super Module initial fillingSuper Module initial filling
Detector filling statusManaging the filling process
• Brick and CS position , …
• During OPERA data acquisitionDuring OPERA data acquisitionCommunicate to the BMS the list of
bricks for daily extraction Keep track of the brick life from
insertion to development
• Super Module initial fillingSuper Module initial fillingDetector filling statusManaging the filling process
• Brick and CS position , …
• During OPERA data acquisitionDuring OPERA data acquisitionCommunicate to the BMS the list of
bricks for daily extraction Keep track of the brick life from
insertion to development
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
33
• At any time : we needAt any time : we needThe brick situation : location , task in
progress The brick history for a given brickThe detector cell historyA graphical display of the detector content
• Actual content, play back display
The status of some connected systems:• Ie : BMS,…
• From time to time : we may needFrom time to time : we may needTo export typical data from the local
repository to the central repository
• At any time : we needAt any time : we needThe brick situation : location , task in
progress The brick history for a given brickThe detector cell historyA graphical display of the detector content
• Actual content, play back display
The status of some connected systems:• Ie : BMS,…
• From time to time : we may needFrom time to time : we may needTo export typical data from the local
repository to the central repository
Main functionalitiesMain functionalities
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
44
System configurationSystem configuration
• BMM Configuration and access rightsBMM Configuration and access rights
System Configuration• Daily extraction starting time• …
Managing the system access(Login,Roles)
• Operators, standard users, Administrators,
• BMM Configuration and access rightsBMM Configuration and access rights
System Configuration• Daily extraction starting time• …
Managing the system access(Login,Roles)
• Operators, standard users, Administrators,
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
55
The sub-systems in presenceThe sub-systems in presence
<<subsystem>>Supervisor/Manipulator
<<subsystem>>BAM
<<subsystem>>(OGC)OPERA Global Control
<<subsystem>>OPERA
On Line System
<<subsystem>>OPERA
Scanning System
<<uses>>
ManagerManagerInterfaceInterface
ScanningScanningInterfaceInterface
<<uses>> <<uses>>
BAMBAMInterfaceInterface
<<uses>>
<<subsystem>>Brick Manipulation
Manager(BMM)
ManipulatorManipulatorInterfaceInterface
+ Cosmic Bench+ Cosmic Benchdevelopment Lab.development Lab.
+ Cosmic Bench+ Cosmic Benchdevelopment Lab.development Lab.
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
66
The actors(1)The actors(1)
• UMLUML for the modelization for the modelization
• USDPUSDP : Use-Case driven : Use-Case driven
• Actor definition :Actor definition :
Order the functionalities of the system by categories
• UMLUML for the modelization for the modelization
• USDPUSDP : Use-Case driven : Use-Case driven
• Actor definition :Actor definition :
Order the functionalities of the system by categories
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
77
The actors(2)The actors(2)
OperaOperaGeneral UserGeneral User
OperaOperaGeneral UserGeneral User
BrickBrickOperatorOperator
BrickBrickOperatorOperator
Loading/UnloadingLoading/UnloadingOperatorOperator
Loading/UnloadingLoading/UnloadingOperatorOperator
CommonCommonOperatorOperatorCommonCommonOperatorOperator
PhysicistPhysicistPhysicistPhysicist
OperaOperaGlobal ControlGlobal Control
OperaOperaGlobal ControlGlobal Control
On-lineOn-line
?
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
88
Use Case ExampleUse Case Example
StartLoadingStartLoading
stopstopLoadingLoading
RestartLoadingRestartLoading
pauspauseLoadingeLoading Loading OperatorLoading Operator
The operator can The operator can decide to pause the decide to pause the loading processloading process
The operator can stopAt any time the loading process
The operator can restart the loading process where it was stopped
The operator starts the initial filling
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
99
OPERA soft
Work plan
Detector view
SM1L Initial filling in progress
SM1R
SM2L
SM2R
empty
empty
StateHalf-super module
Initial filling in progress
contents
Initial filling
Detector view initial filling
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
3 93 83 73 63 53 43 33 23 13 02 92 82 72 62 52 42 32 22 12 01 91 81 71 61 51 41 31 21 11 0987654321
Insertion in row :
SM1, right, 23, 04
b2547b2548b2549b2550b2551
Bricks on manipulator :OPERA
initial filling
SM1
--
Cell :Row :
Super-Module:
09 >OK
Wall :
>OK
SM1, left, 09
-
--
Cell :Row :
Super-Module:
- >OK
Wall :
>OK
SM1, right, 23
Updating...Updatestopped
Initial filling in progress... Initial filling in progress...
First full basket stage :
6
Insertion in row :
SM1, left, 09, 01
Bricks on manipulator : First full basket stage :
WORK PLAN initial filling
Initial filling of an half-super module SM1, left, 09, 01
Initial filling of an half-super module
Initial filling of an half-super module
Initial filling of an half-super module
SM2, left, 01, 01
SM2, right, 01, 01
12/06/03 15:12
01/01/03 08:00
01/01/03 08:00
01/01/03 08:00
Date/HourInsertion in rowTask
SM1, right, 23, 04
execute CloseDetector view
In progress
Graphical User Graphical User InterfaceInterface
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
1010
Graphical Graphical User User
InterfaceInterface
Detector view (info)
OPERADETECTOR VIEW
SM1 1202
Cell :Row :
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01
6 46 36 26 16 05 95 85 75 65 55 45 35 25 15 04 94 84 74 64 54 44 34 24 14 03 93 83 73 63 53 43 33 23 13 02 92 82 72 62 52 42 32 22 12 01 91 81 71 61 51 41 31 21 11 0987654321
SM1, 02Left
sideSuper-Module:
Brick history
Cell history
02 >OKWall :
>OK
Brick history
SM3, wall02, line34, cell18
Brick id : g9762CS id : g9762/fc786
Brick history
close
insertion 10/06/03 21h45extractioninsertion 27/08/04 21h29
SM2, right, 07, 23, 07SM2, right, 07, 23, 07SM1, right, 02, 34, 18
g9762/th122g9762/th122g9762/fc786
CS idSites in detectorDate/HourState
23/08/04 18h35
Cell history
SM3, wall02, line34, cell18
Cell history
close
Empty 01/01/03 08h00
Brick contained
Row in manipulation
Brick contained
Row in manipulation
Brick contained
04/05/04 20h20
04/05/04 20h33
27/08/04 19h15
27/08/04 19h29
b2145
y8741
g9762
Brick idDate/HourState
29/01/03 14h22
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
1111
The class schemaThe class schema
Detector
SuperModule
+2
+1
PositionManager
left/Right side
+2
+1
BrickManagerHalfWall
+1
+31
CS
Row+64
+1
BrickBrick11..n 1
history WorkPlan
OperationsLogBook
Basket+0,234
+0,1
operations
+0,n
+1
+0,n +1
OperaElement
+1
+1
CellHistory
1..n
0..n
1..n
0..n
Cell
+26
+1
0..1
1
0..1
1
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
1212
API LocalLocal
RepositoryRepository
BMSBMS
BMM architectureBMM architecture
BMMBMM
OperatorOperatorWorkstationsWorkstations
Client Appli. Client Appli.
BMMBMMCorba Server
??
??
??
API
OGCOGC
Client ?Client ?
API
Data MonitoringData Monitoring
APIAPI
APIAPI
BMSBMSCorba Server
CentralCentralRepositoryRepository
OracleOracleOracleOracleOracleOracleOracleOracle
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
1313
CommunicationCommunication• 3 tiers decomposition3 tiers decomposition
Software and Hardware decomposition
• Only the BMM component has an access Only the BMM component has an access to its own databaseto its own database
No direct access to the DB from the client side
• The other sub-systems(BMM Clients) will The other sub-systems(BMM Clients) will invoke only BMM servicesinvoke only BMM services
• Based on Based on CORBA CORBA standardstandard
• 3 tiers decomposition3 tiers decompositionSoftware and Hardware decomposition
• Only the BMM component has an access Only the BMM component has an access to its own databaseto its own database
No direct access to the DB from the client side
• The other sub-systems(BMM Clients) will The other sub-systems(BMM Clients) will invoke only BMM servicesinvoke only BMM services
• Based on Based on CORBA CORBA standardstandard
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
1414
CommunicationCommunication
• Why CORBA ?Why CORBA ?Definition of the services
• Description (IDL) of the interfaceDescription (IDL) of the interface
Automatic code generation for the client and server side
Avoid to concentrate effort on the low level of the communication
Inter-operable• System independentSystem independent• Language independentLanguage independent
• Why CORBA ?Why CORBA ?Definition of the services
• Description (IDL) of the interfaceDescription (IDL) of the interface
Automatic code generation for the client and server side
Avoid to concentrate effort on the low level of the communication
Inter-operable• System independentSystem independent• Language independentLanguage independent
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
1515
Example of CORBA usageExample of CORBA usage• IDL Description : IDL Description : OPERA_PROTOTYPEOPERA_PROTOTYPE.idl.idlstruct BrickPosition struct BrickPosition {{ long long brickId;brickId; long long wallNumber;wallNumber; long long xpos;xpos; long long ypos;ypos;};};typedef sequence<BrickPosition> Positions;typedef sequence<BrickPosition> Positions;interface OPERA_PROTOTYPEinterface OPERA_PROTOTYPE{{
voidvoid loadBricks();loadBricks();longlong basketLevelValue();basketLevelValue();voidvoid brickAndCSId(brickAndCSId( outout long brickId,long brickId,
outout long csId);long csId);voidvoid insertBricks(insertBricks( in in long superModuleNumber,long superModuleNumber,
in in long wallNumber,long wallNumber,in in long row);long row);
PositionsPositions insertResult();insertResult();};};
• IDL Description : IDL Description : OPERA_PROTOTYPEOPERA_PROTOTYPE.idl.idlstruct BrickPosition struct BrickPosition {{ long long brickId;brickId; long long wallNumber;wallNumber; long long xpos;xpos; long long ypos;ypos;};};typedef sequence<BrickPosition> Positions;typedef sequence<BrickPosition> Positions;interface OPERA_PROTOTYPEinterface OPERA_PROTOTYPE{{
voidvoid loadBricks();loadBricks();longlong basketLevelValue();basketLevelValue();voidvoid brickAndCSId(brickAndCSId( outout long brickId,long brickId,
outout long csId);long csId);voidvoid insertBricks(insertBricks( in in long superModuleNumber,long superModuleNumber,
in in long wallNumber,long wallNumber,in in long row);long row);
PositionsPositions insertResult();insertResult();};};
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
1616
• Code GenerationCode GenerationServer SideServer Side : :
• OPERA_PROTOTYPEOPERA_PROTOTYPE_I.cpp : Skeleton of the described services :_I.cpp : Skeleton of the described services :void OPERA_PROTOTYPE_i::loadBricks()void OPERA_PROTOTYPE_i::loadBricks(){{
Code has to be inserted to realize the service;Code has to be inserted to realize the service;}}
Client Side :Client Side :• 1. Getting the IOR(Stringified CORBA Server 1. Getting the IOR(Stringified CORBA Server
Reference)Reference)• 2. Server Connection:2. Server Connection:
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
CORBA::Object_var obj = orb->string_to_object(ior);CORBA::Object_var obj = orb->string_to_object(ior);BMS_Ref = OPERA_PROTOTYPE::_narrow(obj);BMS_Ref = OPERA_PROTOTYPE::_narrow(obj);
• 3. Service call : (Synchronized)3. Service call : (Synchronized)– BMS_Ref-> BMS_Ref-> loadBricks();loadBricks();
• Code GenerationCode GenerationServer SideServer Side : :
• OPERA_PROTOTYPEOPERA_PROTOTYPE_I.cpp : Skeleton of the described services :_I.cpp : Skeleton of the described services :void OPERA_PROTOTYPE_i::loadBricks()void OPERA_PROTOTYPE_i::loadBricks(){{
Code has to be inserted to realize the service;Code has to be inserted to realize the service;}}
Client Side :Client Side :• 1. Getting the IOR(Stringified CORBA Server 1. Getting the IOR(Stringified CORBA Server
Reference)Reference)• 2. Server Connection:2. Server Connection:
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
CORBA::Object_var obj = orb->string_to_object(ior);CORBA::Object_var obj = orb->string_to_object(ior);BMS_Ref = OPERA_PROTOTYPE::_narrow(obj);BMS_Ref = OPERA_PROTOTYPE::_narrow(obj);
• 3. Service call : (Synchronized)3. Service call : (Synchronized)– BMS_Ref-> BMS_Ref-> loadBricks();loadBricks();
Example of CORBA usageExample of CORBA usage
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
1717
CommunicationCommunication• ProvProvideide for the other sub-systems for the other sub-systems
an an API/Libraries API/Libraries dedicated to the dedicated to the BMMBMM connection connection
Hide the CORBACORBA usage
Make the server connection completely transparent.
• ProvProvideide for the other sub-systems for the other sub-systems an an API/Libraries API/Libraries dedicated to the dedicated to the BMMBMM connection connection
Hide the CORBACORBA usage
Make the server connection completely transparent.
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
1818
CommunicationCommunication• From the BMM to an other sub-systemFrom the BMM to an other sub-system
Based on a CORBA implementation
Based on a basic Client/Server implementation
• An An API & LibraryAPI & Library should be provided should be provided by developers of sub-systems to by developers of sub-systems to facilitate communicationsfacilitate communications
• From the BMM to an other sub-systemFrom the BMM to an other sub-system
Based on a CORBA implementation
Based on a basic Client/Server implementation
• An An API & LibraryAPI & Library should be provided should be provided by developers of sub-systems to by developers of sub-systems to facilitate communicationsfacilitate communications
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
1919
The BMM The BMM Services & ActionsServices & Actions
• Initial FillingInitial Filling Load_Bricks(SM1 , left)Load_Bricks(SM1 , left)
• Load on carousel 26 bricks on the left side of the SM1Load on carousel 26 bricks on the left side of the SM1
Basket_LBasket_Levelevel_value_value (1 value) (1 value)• BMS returns the rows used in the filling basketBMS returns the rows used in the filling basket
Brick_IdBrick_Id and and CS_Id CS_Id (2 values)(2 values)• Each time(26) the Each time(26) the BMS BMS loads a brick and CS on carousel , it sends loads a brick and CS on carousel , it sends
the two ids to BMM.the two ids to BMM.
Insert_Insert_Bricks(SM1, Wall, Row)Bricks(SM1, Wall, Row)• InsertInsert the the 26 bri26 brickcks s in the free rowin the free row ‘‘RowRow’’ of wallof wall ‘‘WallWall’’ ofof SM1 SM1
Insert_Result( Brick Id, position)Insert_Result( Brick Id, position) (26 x 3 values) (26 x 3 values)• Bricks positions to be saved in the DBBricks positions to be saved in the DB..
• Initial FillingInitial Filling Load_Bricks(SM1 , left)Load_Bricks(SM1 , left)
• Load on carousel 26 bricks on the left side of the SM1Load on carousel 26 bricks on the left side of the SM1
Basket_LBasket_Levelevel_value_value (1 value) (1 value)• BMS returns the rows used in the filling basketBMS returns the rows used in the filling basket
Brick_IdBrick_Id and and CS_Id CS_Id (2 values)(2 values)• Each time(26) the Each time(26) the BMS BMS loads a brick and CS on carousel , it sends loads a brick and CS on carousel , it sends
the two ids to BMM.the two ids to BMM.
Insert_Insert_Bricks(SM1, Wall, Row)Bricks(SM1, Wall, Row)• InsertInsert the the 26 bri26 brickcks s in the free rowin the free row ‘‘RowRow’’ of wallof wall ‘‘WallWall’’ ofof SM1 SM1
Insert_Result( Brick Id, position)Insert_Result( Brick Id, position) (26 x 3 values) (26 x 3 values)• Bricks positions to be saved in the DBBricks positions to be saved in the DB..
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
2020
Data savingData saving• The BMM saves and provides the The BMM saves and provides the
data through service call.data through service call.
• If BMM is not available :If BMM is not available : crashes, network problems, computer problems , …
• Data has to be directly saved into Data has to be directly saved into ORACLE ORACLE
– Encapsulate the BMM service calls in a Encapsulate the BMM service calls in a dedicated library to detect this kind of dedicated library to detect this kind of problemsproblems
• The BMM saves and provides the The BMM saves and provides the data through service call.data through service call.
• If BMM is not available :If BMM is not available : crashes, network problems, computer problems , …
• Data has to be directly saved into Data has to be directly saved into ORACLE ORACLE
– Encapsulate the BMM service calls in a Encapsulate the BMM service calls in a dedicated library to detect this kind of dedicated library to detect this kind of problemsproblems
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
2121
DATA SAVINGDATA SAVING
Data SavingData Saving
Data Saving ORACLEORACLEBMMBMMCorba Corba ServerServer
DataSaving
Interface
ClientClientCodeCode
BMM Service BMM Service access through access through the interfacethe interface
INTERFACE FUNCTIONSINTERFACE FUNCTIONS1. Check the availability of the BMM2. If BMM is broken Data are saved with method call only3. If BMM available Data are saved with a BMM service call and method
call
AA
AA
AAAA
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
2222
Implementation choicesImplementation choices
• The CORBA implementation The CORBA implementation OMNIORB 4.XOMNIORB 4.X
• Freeware : Freeware : http://www.uk.research.att.com/omniORB/
• Maintenance availableMaintenance available• Implementation exists for W2000 and LINUXImplementation exists for W2000 and LINUX
• The language choice :The language choice :Graphical User Interface : JAVA on any JAVA on any
platformplatformServer side : C++ on LINUX
• The CORBA implementation The CORBA implementation OMNIORB 4.XOMNIORB 4.X
• Freeware : Freeware : http://www.uk.research.att.com/omniORB/
• Maintenance availableMaintenance available• Implementation exists for W2000 and LINUXImplementation exists for W2000 and LINUX
• The language choice :The language choice :Graphical User Interface : JAVA on any JAVA on any
platformplatformServer side : C++ on LINUX
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
2323
TestsTests• Tests already done:Tests already done:
Check the CORBA interoperability:• LINUX<->W2000LINUX<->W2000• Client C++<-> Server C++Client C++<-> Server C++• Java Client <-> Server C++Java Client <-> Server C++
Database access:• OnlineOnline : Only from the BMM side
– C++C++– ORACLE access from C++ORACLE access from C++ : OCCI(Oracle9i)OCCI(Oracle9i)
• Data MonitoringData Monitoring toolstools : :– C++/OCCI or Java/JDBCC++/OCCI or Java/JDBC
• Tests to be done soon : Tests to be done soon : Prototyping a full sequence (Client<->BMM<->BMSClient<->BMM<->BMS)
for checking communication between BMM and BMS
• Tests already done:Tests already done: Check the CORBA interoperability:
• LINUX<->W2000LINUX<->W2000• Client C++<-> Server C++Client C++<-> Server C++• Java Client <-> Server C++Java Client <-> Server C++
Database access:• OnlineOnline : Only from the BMM side
– C++C++– ORACLE access from C++ORACLE access from C++ : OCCI(Oracle9i)OCCI(Oracle9i)
• Data MonitoringData Monitoring toolstools : :– C++/OCCI or Java/JDBCC++/OCCI or Java/JDBC
• Tests to be done soon : Tests to be done soon : Prototyping a full sequence (Client<->BMM<->BMSClient<->BMM<->BMS)
for checking communication between BMM and BMS
CERN Meeting 23/09/03
L.A.P.P OPERAT. Le Flour
2424
About ORACLEAbout ORACLE
• Availability of ORACLE from CERNAvailability of ORACLE from CERNFor Labs :
• Which version ? 9i • When and how to get the LINUX version
• Db installation and organization in Db installation and organization in OPERA?OPERA?
• Database administration ?Database administration ?Backup, …Support ?
• Availability of ORACLE from CERNAvailability of ORACLE from CERNFor Labs :
• Which version ? 9i • When and how to get the LINUX version
• Db installation and organization in Db installation and organization in OPERA?OPERA?
• Database administration ?Database administration ?Backup, …Support ?