1 / 11

CCP4(i) Database Development

CCP4(i) Database Development. Wanjuan (Wendy) Yang CCP4 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.

ecarleton
Télécharger la présentation

CCP4(i) Database Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CCP4(i) Database Development Wanjuan (Wendy) Yang CCP4 Annual developer’s meeting March 28, 2006 York

  2. Outline of the talk • Background of the project • System Architecture & components functionalities • Choice of technologies • Current status & immediate plan

  3. Background of the project • As part of BIOXHIT: • Expand current CCP4i job database and include extended tracking and storage of crystallographic data • Aim to separate the project database handling from main CCP4i process, allow access to project database from non-CCP4i applications. • Expand scope of CCP4i database to store richer dataset. • Useful for: • Users of CCP4i • Automated structure determination pipelines: to record the progress/steps/result within pipelines • Non-CCP4i applications that want to use the database: sharing data between different applications

  4. System Architecture CCP4i XIA HAPPy Coot CCP4 MG Client API Client API Client API Other CCP4 & Non-CCP4 Applications Data Visualiser DB Handler Client API Project DB Database.def Project DB SQL db Other databases e.g. PIMS

  5. Components functionalities • DB handler: • 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. CCP4i project database ii. SQL database

  6. Components functionalities • Project Database: • project history tracking data: store steps/jobs taken within software pipeline • knowledge base data: common crystallographic data items used within the software pipeline

  7. Components functionalities • Client API: • 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

  8. Choice of technologies • Client-Server architecture: socket communications between server and clients. • XML used as messaging technology: Allow system being language independent Request example: <db_request> <command>NewProject</command> <argument>ProjectName</argument> <argument>ProjectDirectory</argument> </db_request> Response example: <db_response> <status>ok</status> <result>3</result> </db_response>

  9. Choice of technologies • Database backend choices: We provide multiple databases backend: • 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 • flat files: Def file backend implemented in Python. Replicates current CCP4i. • Client APIs implemented in: • Tcl API to support CCP4i and Tcl-based applications. • Python API to support python-based automation projects.

  10. Current Status & immediate plans • Python DB handler has been implemented. • Next step is to integrate in CCP4i with .def file backend. Allow other applications to make use of database.def data. • Currently developing SQL schema for “rich database” backend • 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

  11. Acknowledgements • Peter Briggs • Graeme Winter • Charles Ballard • Daniel Rolfe • Steve Ness • Many others …

More Related