ANSTO E-Science workshop Romain Quilici University of Sydney CIMA CIMA Instrument Remote Control...
-
Upload
zoe-mckinney -
Category
Documents
-
view
214 -
download
0
Transcript of ANSTO E-Science workshop Romain Quilici University of Sydney CIMA CIMA Instrument Remote Control...
ANSTO E-Science workshopANSTO E-Science workshop
Romain QuiliciRomain QuiliciUniversity of SydneyUniversity of Sydney
CIMACIMA Instrument Remote ControlInstrument Remote Control Integration with GridSphereIntegration with GridSphere
CIMA: Project goalsCIMA: Project goals Integrate instruments and sensorsIntegrate instruments and sensors ( (e.g. e.g. real-time data real-time data
sources) sources) into a grid computinginto a grid computing environment with Web Services environment with Web Services interfacesinterfaces
Abstract instrument capabilities and functionsAbstract instrument capabilities and functions to reduce to reduce data acquisition and analysis applications’ dependence on data acquisition and analysis applications’ dependence on specialized knowledge about particular instrumentsspecialized knowledge about particular instruments
Move production of metadata as close to instrumentsMove production of metadata as close to instruments as as possible and facilitate the automatic production of metadatapossible and facilitate the automatic production of metadata
Develop a Develop a standard, reusable methodology for “grid standard, reusable methodology for “grid enabling” instrumentsenabling” instruments
Collaborate with scientists in Collaborate with scientists in academia and industryacademia and industry in a broad in a broad range of disciplines who either develop instruments or whose work range of disciplines who either develop instruments or whose work depends on the details of using them.depends on the details of using them.
CIMA ComponentsCIMA Components Service architectureService architecture
• Instrument representative (IR) code (device independent) Instrument representative (IR) code (device independent) • Drivers (Plug-ins, device dependent) / Software (BIS)Drivers (Plug-ins, device dependent) / Software (BIS)• Service life cycle, high level protocol, communications, self Service life cycle, high level protocol, communications, self
description, discovery, security description, discovery, security
Communications protocolCommunications protocol• Standards based Standards based • Support for synchronous and asynchronous interactions Support for synchronous and asynchronous interactions
between client and IR between client and IR
Instrument and sensor descriptionInstrument and sensor description• Ontology-based with static and dynamic information Ontology-based with static and dynamic information • Clients should be able to build functional model from Clients should be able to build functional model from
descriptiondescription
Registry and directory server
Data Acquisition
Code(s)
Register
NotifyWeb Services interface
Request/Response
Events/Streaming
Locate
Analysis Codes
Storage Storage
InstrumentSemantics,Metadata
WS
Int
erfa
ce
Channel(Sink)
User app main
program
User application
Service main
Plug-inModule
#1
Sensor
Channel(Source)
Web
Ser
vice
s In
terf
ace
CIMA instrument service
Actuator
Plug-inModule#2, etc.
…
(7) Streaming Data
(6) Response with Data
(3) Request
(5) Sensor Data
Actuatorcommand
(4)
(2) Session token
(1) Session Request
1. Session request Parcel with credentials2. Session token returned to client
3. Request Parcel from client: describe, get, set, register, etc. plus session token
4. Channel calls appropriate plug-in for request type and data source
5. Plug-in retrieves data or runs actuator6. Response Parcel is returned to client (data
or result code)
7. If Client registers for event or streaming data Service calls client periodically or when data is available (timer or event-driven from plug-in)
Session token returned to clientSession request Parcel with credentials
Request Parcel from client: describe, get, set, register, etc. plus session tokenChannel calls appropriate plug-in for request type and data sourcePlug-in retrieves data or runs actuatorResponse Parcel is returned to client (dataor result code)
If Client registers for event or streaming data Service calls client periodically or when data is available (timer or event-driven from plug-in)
Plugin ConfigurationPlugin Configuration
XML based Java Reflection API to load plugins at runtimeJava Reflection API to load plugins at runtime
Instrument controlInstrument control Must support Must support several types of commands types of commands
• Void command: Set variables• Synchronous command: Get: Get• Asynchronous commandAsynchronous command
New parcel types:New parcel types:• Get Get
• CommandCommand
Instrument controlInstrument control Strong Security neededStrong Security needed
• Several levels required. Authentication Authorization, Several levels required. Authentication Authorization, Encryption…Encryption…
• Log mechanismLog mechanism• Might be achieved with certificate (GSI/MyProxy) or with Might be achieved with certificate (GSI/MyProxy) or with
Shibboleth/XACMLShibboleth/XACML Need for operations synchronization: Need for operations synchronization:
• Concurrent access: Queues, Priorities, locksConcurrent access: Queues, Priorities, locks• Wait mechanism: Wait mechanism:
wait for parameters in order to build a command the wait for parameters in order to build a command the instrument/drivers/software can understand. instrument/drivers/software can understand.
Dependency between pluginsDependency between plugins• Parcels containing a sequence of commandsParcels containing a sequence of commands
Instrument Constraints descriptionInstrument Constraints description• Self descriptionSelf description• Defines rules for the instrument: collision map,…Defines rules for the instrument: collision map,…• Loaded dynamically by clients
Implementation StatusImplementation Status One C++ versionOne C++ version
• Used by several sitesUsed by several sites• Difficult to extendDifficult to extend
2 Java versions2 Java versions• IndianaIndiana• University of SydneyUniversity of Sydney
Need to merge the 2 versionsNeed to merge the 2 versions
On going projectsOn going projects• Instruments OntologyInstruments Ontology• RegistryRegistry
CIMA-GridSphereCIMA-GridSphere Provides Instrument monitoring and controlProvides Instrument monitoring and control Technologies: Tomcat, WS (axis/XFire), Pushlets, AJAX, Technologies: Tomcat, WS (axis/XFire), Pushlets, AJAX,
JavaScript, CIMAJavaScript, CIMA Portal contains CIMA Sink (clients)Portal contains CIMA Sink (clients)
• Plugin architecture Plugin architecture XML based configurationXML based configuration
JAVA Reflection APIJAVA Reflection API
• Instantiated and Registered when the portlets container is loaded Instantiated and Registered when the portlets container is loaded • Container LifecycleContainer Lifecycle
Unregistered when the container is destroyedUnregistered when the container is destroyed
Container A
Portlets Container
User
Admin
UserControl
Monitor
Monitor
Several simultaneous
users.
Only one Administrator
Data cache
Container B
WebServices Container
CIMA component
CIMA component
Instruments
Pushed Data:XML Parcels
1) Requests:XML Parcels
2) Responses:XML Parcels
WebServices Container
SO
AP
SO
AP
Dynamic content pushed:
Pushlets-Ajax
Data Manager
SRB
Pushed Data:XML Parcels
SOAP
Data
Retrieval
Container A
Portlets Container
User
Admin
UserControl
Monitor
Monitor
Several simultaneous
users.
Only one Administrator
Data cache
Container B
WebServices Container
CIMA component
CIMA component
Instruments
Pushed Data:XML Parcels
1) Requests:XML Parcels
2) Responses:XML Parcels
WebServices Container
SO
AP
SO
AP
Dynamic content pushed:
Pushlets-Ajax
Data Manager
SRB
Pushed Data:XML Parcels
SOAP
Data
Retrieval
CIMA-GridSphereCIMA-GridSphere StatusStatus: :
• Instruments Instruments Labjacks (monitoring)Labjacks (monitoring) Diffractometer (monitoring and control)Diffractometer (monitoring and control) CamerasCameras
• SecuritySecurity Username/password authenticationUsername/password authentication No authentication in container BNo authentication in container B
Future workFuture work• Ensure only one operator (control) at a time, or must be synchronize at CIMA Ensure only one operator (control) at a time, or must be synchronize at CIMA
levellevel• Rely on a safe/standard security infrastructureRely on a safe/standard security infrastructure
Portal levelPortal level Instrument levelInstrument level Delegation between both entitiesDelegation between both entities
• Provides a list of instruments with their descriptionsProvides a list of instruments with their descriptions Obtained from a registryObtained from a registry Dynamic registration, involves registration/user managementDynamic registration, involves registration/user management Dynamic Graphical Interface: portlet view built from the Instrument descriptionDynamic Graphical Interface: portlet view built from the Instrument description
• Use PGL to interface with SRBUse PGL to interface with SRB