Réf. ThmX-NT-SI-CC001 Table f Cntents Sftware Technical Specificatins fr ThmX Authr : Philippe Page 1 / 9 1.INTRODUCTION... 2 2.TECHNICAL REQUIREMENTS... 2 3.DOCUMENTATION REQUIREMENTS... 4 4.COMPUTING RESOURCES SUPPORT... 5 Réf. du mdèle : LAL-TMP-AQO-003
Réf. ThmX-NT-SI-CC001 1. Intrductin Sftware Technical Specificatins fr ThmX Authr : Philippe Page 2 / 9 Aim f this dcument Many subsystems prvided by external suppliers have t be integrated int ThmX s TANGO cntrl system. The aim f this dcument is t give t suppliers the general sftware requirements that will guarantee a gd sftware integratin f their subsystem int the TANGO cntrl system. The subsystem t integrate will be called third party subsystem in this dcument. This dcument is written based n the SOLEIL s Technical Specificatin fr dcument. Imprtant nte: This dcument desn t deal with the specific functinal and perfrmance requirements, which are particular t each third party subsystem and must thus be detailed in a separate dcument. Respnsibilities descriptin Sftware fr Cntrls and Data acquisitins is under the respnsibility f the cntrl cmmand grup (CC), part f the ThmX s systems. CC is a develpment grup, transversal t all acceleratr and beamlines, having in charge t develp, maintain and guarantee the daily peratin f all cntrl systems at ThmX. The respnsibility f the CC grup cvers the fllwing phases: Technical study f the third party subsystem integratin within Tang cntrl system Sftware develpment f the Tang device integrating the third party subsystem Sftware deplyment and peratin f the Tang device Sftware maintenance f the Tang device 2. Technical requirements Cnnectin t ThmX's Cntrl system The supplier has t indicate which cnnectr technlgy and which netwrk Réf. du mdèle : LAL-TMP-AQO-003
Réf. ThmX-NT-SI-CC001 Sftware Technical Specificatins fr ThmX Authr : Philippe Page 3 / 9 prtcl are necessary fr the third-party subsystem t cmmunicate with ThmX's cntrl system. An ethernet interface with RJ45 cnnectr technlgy will be preferred. Principle f sftware integratin int ThmX s Cntrl system ThmX uses the TANGO framewrk (http://www.tang-cntrls.rg/) fr cntrl and data acquisitins n its acceleratr and beamlines. The key cmpnent f the Tang system is called a device. A device is a sftware bject distributed n a netwrk. A Tang device is accessible thrugh methds, attributes and prperties. The devices can be n the same cmputer r distributed ver a number f cmputers intercnnected by a netwrk. The netwrk cmmunicatin is dne using CORBA. Cnfiguratin data is stred in a dedicated database. Illustratin 1: Bus lgiciel Tang The integratin f any third party subsystem will be dne by encapsulating its main functins within 1 r a few devices, which will expse them n the Tang sftware bus. Then, the Tang bus prvides a lt f services t wrk with the device (GUI, data archiving, sequencing and batch prcessing) and make it usable t the end user. Thus, the sftware integratin f third party subsystem nly cnsists in: Defining the functins f the third party subsystem that shuld be accessible Réf. du mdèle : LAL-TMP-AQO-003
Réf. ThmX-NT-SI-CC001 Sftware Technical Specificatins fr ThmX Authr : Philippe Page 4 / 9 thrugh Tang Encapsulating these functins within a Tang DeviceServer Therefre, this excludes the definitin f any GUI r high level services (like fr instance data lgging, scanning mechanisms, etc.). T make this Device integratin pssible, the supplier f the third party subsystem must prvide the CC grup with an external C++ library r, ideally, with a DeviceServer Tang develpped with respect t the Tang DesignGuidelines (Tang DeviceServers Design & Implementatin Guidelines http://www.tang-cntrls.rg/dcuments/tang-kernel). C++ Library technical requirements The C++ library must cnfrm t the fllwing technical and functinal cnstraints. Language cnstraints The library must be written in ANSI C++ and must nt use any specific language extensin The library must be cmpilable and peratinal with the cmpilers: Visual C++ versin 8 r higher n Win32 platfrms Gcc versin 4.4.2 r higher n linux platfrms The library shuld be prtable n the Win32 and linux perating systems (i.e the same cde surce must be used fr bth platfrms) Threading and executin cnstraints The library must be thread safe: any cnstraint linked t a multithreaded envirnment has t be described and discussed with the CC grup Library must be independent f any external applicatin t be peratinal: cnfiguratin, executin and mnitring must be available as functins f the library. The library must be executable in a cncurrent envirnment: in particular, it is nt acceptable t have executin cnstraints f the library that avid simultaneus clients t launch, interact with and mnitr the subsystem. The library must nt be linked t any GUI applicatin (i.e library calls must nt pen nr blige t pen a GUI applicatin ) Functin calls f the library shuld be nn blcking: Réf. du mdèle : LAL-TMP-AQO-003
Réf. ThmX-NT-SI-CC001 Sftware Technical Specificatins fr ThmX Authr : Philippe Page 5 / 9 Getting the state f the subsystem must always be available, whatever tasks are being executed by the library All the data (images, spectrums scalars, cnfiguratin parameters) prvided by the subsystem must always be available, whatever tasks are being executed by the library. All infrmatin described in the functinal part as Tang attributes shuld be directly accessible thrugh library calls. Indirect access t data (thrugh files r thers applicatins) is nt acceptable. Errr handling All errrs must be handled using the C++ exceptin mechanism. ThmX can prvide templates f an exceptin class which eases integratin in the general Tang errr handling mechanism. 3. Dcumentatin requirements Surce cde requirements The surce cde f the library shuld be available n electrnic supprt The surce cde shuld be versined thrugh a versining system (CVS, SVN, Git r Mercurial) Library dcumentatin At least a dxygen dcumentatin f library functins must be prvided A user manual f all sftware parts f the third party subsystem must be prvided (explaining cnfiguratin, deplyment, functinalities, errr handling and sftware limitatins) 4. Cmputing resurces supprt Systems and netwrk respnsibilities If the third party subsystem requires a dedicated system and netwrk infrastructure (like dedicated PCs r servers), the supplier must answer the fllwing questins: if the dedicated system and netwrk infrastructure is prvided by the supplier as part f its third party subsystem : Réf. du mdèle : LAL-TMP-AQO-003
Réf. ThmX-NT-SI-CC001 Sftware Technical Specificatins fr ThmX Authr : Philippe Page 6 / 9 The supplier must explain hw installatin, system administratin and maintenance peratin are taken in charge (is there an included maintenance cntract? hw is the ht line rganised?, etc.) The supplier must cnfirm it will accept ThmX requirements fr a prper integratin within ThmX TCP/IP netwrk. This cvers in particular: DHCP, DNS cnfiguratin Installatin f netwrk services: NTP daemn, antivirus sftware, Tang starter service, nagis client, exprt and imprt f filesystem (thrugh NFS r CIFS) When the system and netwrk infrastructure has t be prvided by ThmX, supplier must adapt its system t ThmX standards (O.S versins, patch level, etc...) Sftware engineering The supplier shuld explain if sftware develpment are dne in huse r by subcntractrs The supplier shuld explain which cnfiguratin management system (CVS, SVN, etc.) is used fr its sftware develpments The supplier shuld detail the number and qualificatin f their sftware develpers Anmalies crrectin The supplier will answer t the fllwing questins: Is there a dedicated sftware crrespndent fr ThmX team? Is there a WEB access t supprt? Des the supplier use any bug tracker system t fllw up sftware prblems and requirements? The supplier must explain its sftware release plicy (frequency f majr/minr versins f sftware, etc.) Maintenance questins In its cmmercial ffer, the supplier must qute the price fr cmputing resurces maintenance if nt included int the guarantee. This includes hardware and perating system maintenance, C++ library and sftware applicatins upgrades. Réf. du mdèle : LAL-TMP-AQO-003
Réf. ThmX-NT-SI-CC001 Sftware Technical Specificatins fr ThmX Authr : Philippe Page 7 / 9 5. Summary f cnstraints and answers t submit by suppliers The supplier prvide: a DeviceServer Tang develpped with respect t the Tang DesignGuidelines (Tang DeviceServers Design & Implementatin Guidelines http://www.tangcntrls.rg/dcuments/tang-kernel) a C++ library In the case f a C++ library: language: written in C++ ANSI withut any specific language extensin cmpilable and peratinal with the fllwing cmpilers: Visual C++ versin 8 r higher n Win32 platfrms Gcc versin 4.4.2 r higher n linux platfrms is the library prtable n the Win32 and linux perating systems (i.e the same cde surce must be used fr bth platfrms)? executin and threads: thread safe independent f any external applicatin and give access t cnfiguratin, executin and mnitring executable in a cncurrent envirnment nt be linked t any GUI applicatin Are functin calls nn blcking? Is the subsystem state always available? Are all the data (images, spectrums scalars, cnfiguratin parameters) prvided by the subsystem always available? give direct access t all infrmatin described in the functinal part as Tang attributes. N indirect access t data (thrugh files r thers applicatins) is necessary. handles errr using the C++ exceptin mechanism Réf. du mdèle : LAL-TMP-AQO-003
Réf. ThmX-NT-SI-CC001 Sftware Technical Specificatins fr ThmX Authr : Philippe Page 8 / 9 surce cde: is the surce cde available n electrnic supprt? Is the surce cde versined thrugh a versining system (CVS, SVN, Git r Mercurial)? dcumentatin prvide a dxygen dcumentatin f library functins prvide a user manual f all sftware parts explaining cnfiguratin, deplyment, functinalities, errr handling and sftware limitatins Cmputing resurces supprt Systems and netwrk respnsibilities if the dedicated system and netwrk infrastructure is prvided by the supplier as part f its third party subsystem : the supplier explains hw installatin, system administratin and maintenance peratin are taken in charge: is it included in the guarantee? If nt, is it included int a maintenance cntract? What is its price? hw is the ht line rganised? etc. the supplier cnfirms it will accept ThmX requirements fr a prper integratin within ThmX TCP/IP netwrk, in particular: DHCP, DNS cnfiguratin Installatin f netwrk services: NTP daemn, antivirus sftware, Tang starter service, nagis client, exprt and imprt f filesystem (thrugh NFS r CIFS) if the system and netwrk infrastructure has t be prvided by ThmX, supplier must adapt its system t ThmX standards (O.S versins, patch level, etc...) Sftware engineering are sftware develpment dne in huse? are sftware develpment dne by subcntractrs? which cnfiguratin management system (CVS, SVN, etc.) is used fr its sftware develpments? what are the number and qualificatin f the sftware develpers supplier? Réf. du mdèle : LAL-TMP-AQO-003
Réf. ThmX-NT-SI-CC001 Sftware Technical Specificatins fr ThmX Authr : Philippe Page 9 / 9 Anmalies crrectin Is there a dedicated sftware crrespndent fr ThmX team? Is there a WEB access t supprt? Des the supplier use any bug tracker system t fllw up sftware prblems and requirements? what is the sftware release plicy (frequency f majr/minr versins f sftware, etc.) Maintenance questins In its cmmercial ffer, the supplier qute the price fr cmputing resurces maintenance if nt included int the guarantee. This includes hardware and perating system maintenance, C++ library and sftware applicatins upgrades. Réf. du mdèle : LAL-TMP-AQO-003