eeb0699b25bec7db5bc0ef3028909375.ppt
- Количество слайдов: 11
CCP 4(i) Database Development Wanjuan (Wendy) Yang CCP 4 Annual developer’s meeting March 28, 2006 York
Outline of the talk ¡ ¡ Background of the project System Architecture & components functionalities Choice of technologies Current status & immediate plan
Background of the project ¡ As part of BIOXHIT: l l Expand current CCP 4 i job database and include extended tracking and storage of crystallographic data Aim to separate the project database handling from main CCP 4 i process, allow access to project database from non-CCP 4 i applications. l ¡ Expand scope of CCP 4 i database to store richer dataset. Useful for: l l l Users of CCP 4 i Automated structure determination pipelines: to record the progress/steps/result within pipelines Non-CCP 4 i applications that want to use the database: sharing data between different applications
System Architecture CCP 4 i XIA HAPPy Client API Data Visualiser DB Handler Coot CCP 4 MG Other CCP 4 & Non-CCP 4 Applications Client API Project DB Database. def Project DB SQL db Other databases e. g. PIMS
Components functionalities ¡ DB handler: l l l Runs in server mode: one handler per user; allow many clients connect at the same time. Can be invoked from clients or start separately. Shut down procedure: automatically shutdown when there is no clients; clients send shutdown message. Broadcasting: when database changes state, handler notifies clients. Can deal with different types of database through DB APIs: e. g. i. CCP 4 i project database ii. SQL database
Components functionalities ¡ Project Database: l l project history tracking data: store steps/jobs taken within software pipeline knowledge base data: common crystallographic data items used within the software pipeline
Components functionalities ¡ Client API: l l l ¡ A list of methods/commands for interacting with the handler. Hides details of socket communications Implemented in different programming languages to support different applications. Visualisation tool: for viewing data and analysing data
Client-Server architecture: Choice of technologies ¡ socket communications between server and clients. ¡ XML used as messaging technology: Allow system being language independent Request example: <db_request> <command>New. Project</command> <argument>Project. Name</argument> <argument>Project. Directory</argument> </db_request> Response example: <db_response> <status>ok</status> <result>3</result> </db_response>
Choice of technologies ¡ Database backend choices: We provide multiple databases backend: l Embedded database: we are using SQLite. Features: ¡ simple to use: a small C library. Self-contained, embedded SQL database engine ¡ portable: single files on the file system. ¡ zero-configuration: no set-up or administration needed ¡ fast random access to the data l flat files: Def file backend implemented in Python. Replicates current CCP 4 i. ¡ Client APIs implemented in: l l Tcl API to support CCP 4 i and Tcl-based applications. Python API to support python-based automation projects.
Current Status & immediate plans ¡ Python DB handler has been implemented. l ¡ Currently developing SQL schema for “rich database” backend l l ¡ Next step is to integrate in CCP 4 i with. def file backend. Allow other applications to make use of database. def data. Consists of knowledge base (i. e. crystallographic data) and tracking (project history) Being developed in conjunction with HAPPy and XIA projects. Several iterations will be required to stabilise schema and API. Next step is to make Client APIs available to HAPPy and XIA. Begin to develop visualisation tool to integrate project tracking data
Acknowledgements ¡ ¡ ¡ Peter Briggs Graeme Winter Charles Ballard Daniel Rolfe Steve Ness Many others …
eeb0699b25bec7db5bc0ef3028909375.ppt