Difference between revisions of "Service:Main"
(6 intermediate revisions by one other user not shown) | |||
Line 3: | Line 3: | ||
= Mission = | = Mission = | ||
− | The mission of the Service Core is to provide and maintain the collaborative and computing infrastructure that NA-MIC | + | The mission of the Service Core is to provide and maintain the collaborative and computing infrastructure that NA-MIC requires to achieve its research and outreach goals. This includes devising an infrastructure that enables NA-MIC efforts to have significant and lasting impact on the NA-MIC community and the broader field of medical image analysis. |
We have designed an infrastructure that offers clear benefits to developers and users while promoting the ideals of NA-MIC and open science, with minimal burden. We are building and maintaining that infrastructure by directing our service efforts in the following ways: | We have designed an infrastructure that offers clear benefits to developers and users while promoting the ideals of NA-MIC and open science, with minimal burden. We are building and maintaining that infrastructure by directing our service efforts in the following ways: | ||
Line 18: | Line 18: | ||
== 2. Support the Delivery of High-Quality Software == | == 2. Support the Delivery of High-Quality Software == | ||
− | To build high-quality software, the NA-MIC Service | + | To build high-quality software, the NA-MIC Service Core has developed [http://wiki.na-mic.org/Wiki/index.php/OverviewSoftwareProcessSummary high-quality software processes and tools] that are used in building the NA-MIC Kit and that are distributed with the NA-MIC Kit. Key aspects of those processes include the following: |
− | + | * Builds upon and contributes to industry standards | |
− | + | ** NA-MIC's [http://wiki.na-mic.org/Wiki/index.php?title=Engineering Engineering Core] is tasked with using and contributing back to the open-source components of the NA-MIC Kit. Specific examples of those open-source components are listed [http://wiki.na-mic.org/Wiki/index.php?title=Engineering:Kitware here]. | |
− | + | * Is built using open design discussions | |
− | + | ** We are hosting | |
− | + | *** [http://www.na-mic.org/Wiki/index.php/Main_Page Wiki pages] to post designs and maintain an overview of NA-MIC efforts | |
− | + | *** [http://www.slicer.org/pages/Mailinglist Email lists] to gather comments, host discussions, and resolve issues (Approximately a dozen mailing lists have been established to cover various topics within the NA-MIC community.) | |
− | + | *** [http://www.na-mic.org/Wiki/index.php/Events Weekly TCons, Project Tcons, All Hands Meetings, Project Weeks, and more] to coordinate efforts and maintain long-term plans | |
− | + | *** [http://www.na-mic.org/Bug/my_view_page.php Mantis bug tracker] to post errors and make feature requests | |
− | + | * Supports multiple platforms | |
− | + | ** [http://wiki.na-mic.org/Wiki/index.php/CmakeSummary CMake] provides cross-platform build and deployment systems. | |
− | + | * Uses a consistent coding style | |
− | + | ** A consistent coding style simplifyies learning, debugging, and extension. We are using the VTK and [http://www.itk.org/Wiki/ITK_Coding_Style_Guide ITK style guidelines] for our efforts. | |
− | + | * Is thoroughly tested | |
− | + | ** CTest and CDash are used to test the operation of 3D Slicer and the NA-MIC Kit on a multitude of platforms, every night. | |
− | + | ** [http://public.kitware.com/dashboard.php?name=slicer Slicer testing dashboard] | |
− | + | ** [http://public.kitware.com/dashboard.php?name=namic General NA-MIC dashboard] | |
== 3. Support the Delivery of Useful Algorithms == | == 3. Support the Delivery of Useful Algorithms == | ||
This is achieved in two ways: | This is achieved in two ways: | ||
− | * The Service Core fosters communication between Cores. The wiki, web pages, data servers, and code repositories are channels for communication and collaboration. We | + | * The Service Core fosters communication between Cores. The wiki, web pages, data servers, and code repositories are channels for communication and collaboration. We monitor the exchange of data and ideas between the Cores by attending teleconferences, Project Events, etc., and we adapt our infrastructure (bandwidth, server tools, etc.) to ensure smooth communication. |
− | * The Service Core | + | * The Service Core works with the Computer Science Core to support algorithm validation activities. We investigate infrastructure that support distributed computing for parameter space explorations, algorithm comparisons, and longitudinal studies. We also work with the Computer Science Core to refine CTest so that they can validate algorithms (e.g., conduct leave-one-out analyses), in addition to testing code for consistent output. |
− | == Gather and Respond to Community Feedback == | + | == 4. Gather and Respond to Community Feedback == |
− | + | An important part of endearing community involvement is being responsive to their needs: | |
− | |||
− | == Facilitate the Sharing of Science == | + | * We monitor the communication infrastructure to identify trends that point to areas of strength and weakness in the NA-MIC Kit. |
+ | * We actively work with the Dissemination and Training Cores to involve the community in the NA-MIC Kit. | ||
+ | |||
+ | == 5. Facilitate the Sharing of Science == | ||
The foundation of the NA-MIC Kit, the NA-MIC Community, and Open Science is the sharing of software, documentation, and data to accelerate the pace of research in the field of medical image analysis. This foundation will be created and preserved by the following: | The foundation of the NA-MIC Kit, the NA-MIC Community, and Open Science is the sharing of software, documentation, and data to accelerate the pace of research in the field of medical image analysis. This foundation will be created and preserved by the following: | ||
− | * Support Software Modularity. The Service Core | + | * Support Software Modularity. The Service Core works with the NITRC website (http://www.nitrc.org/) and creates its own website to host modules that extend the capabilities of the NAMIC Kit. The Service Core applies documentation and testing standards to these modules. |
− | * Manage Publications. The Service Core | + | * Manage Publications. The Service Core operates and extends the PubDB repository of NA-MIC publications, http://www.na-mic.org/publications. It will be extended to automatically harvest PMID’s from the NIH websites. |
* Host Data Repositories. The Service Core and the Computer Science Core will work together on promoting and maintaining a public XNAT database of medical images. Use within and beyond NA-MIC will be encouraged. | * Host Data Repositories. The Service Core and the Computer Science Core will work together on promoting and maintaining a public XNAT database of medical images. Use within and beyond NA-MIC will be encouraged. | ||
* Recognize Contributions. In all of the above endeavors, acknowledging contributors is important to encouraging community involvement. The Service Core is tasked with ensuring that communication and publication channels carry the appropriate acknowledgments. For example, modules already extend the user-interface of 3D Slicer to display the contributor’s logo when that module is run. | * Recognize Contributions. In all of the above endeavors, acknowledging contributors is important to encouraging community involvement. The Service Core is tasked with ensuring that communication and publication channels carry the appropriate acknowledgments. For example, modules already extend the user-interface of 3D Slicer to display the contributor’s logo when that module is run. | ||
+ | === Infrastructure for Sharing === | ||
Two of the foundational technologies of our data and publication dissemination infrastructure are XNat and MIDAS. | Two of the foundational technologies of our data and publication dissemination infrastructure are XNat and MIDAS. | ||
− | + | <center>[[Image:XNatLogo.gif|220px]]</center> | |
− | + | The Extensible Neuroimaging Archive Toolkit (XNAT) is an open source software platform designed to facilitate management and exploration of neuroimaging and related data. XNAT includes a secure database backend and a rich web-based user interface. [http://www.xnat.org/xnat_neuroinformatics.pdf More...] | |
+ | |||
+ | <center>[[Image:MIDASLogo.png|220px]]</center> | ||
+ | [http://www.kitware.com/products/midas.html MIDAS] is open-source software for hosting heterogeneous databases, e.g., databases of images, publications, meta-data, presentations, and more. MIDAS also provides interfaces so that its data can be easily accesses over the web and via C++/python/Java. MIDAS can also harvest data from other databases on the web, e.g., PubMed and genomics databases. NA-MIC has a MIDAS installation to serve as the [http://www.na-mic.org/publications NA-MIC Publications Database]. MIDAS is also being used to host [http://www.insight-journal.org/midas/community/view/17 NA-MIC data], the [http://www.insight-journal.org Insight Journal], the [http://www.midasjournal.org/ MIDAS Journal], and the [http://www.midasjournal.org/?journal=35 VTK Journal]. Direct access to MIDAS's data from within Slicer is being developed to support informatics analysis and visualization. Direct access to MIDAS's publications from within Slicer is being developed to provide documentation and integrative tutorials. [http://www.kitware.com/products/midas.html More...] | ||
= Computer Systems and Networking = | = Computer Systems and Networking = |
Latest revision as of 11:08, 21 March 2010
Home < Service:MainBack to NA-MIC Cores
Contents
Mission
The mission of the Service Core is to provide and maintain the collaborative and computing infrastructure that NA-MIC requires to achieve its research and outreach goals. This includes devising an infrastructure that enables NA-MIC efforts to have significant and lasting impact on the NA-MIC community and the broader field of medical image analysis.
We have designed an infrastructure that offers clear benefits to developers and users while promoting the ideals of NA-MIC and open science, with minimal burden. We are building and maintaining that infrastructure by directing our service efforts in the following ways:
- Maintain open licensing
- Support the delivery of high-quality software
- Support the development of useful algorithms
- Gather and respond to feedback from the community
- Facilitate the sharing of documentation, software, and data
1. Maintain Open Licensing
The 3D Slicer software is distributed under a BSD-style open source license that contains no restrictions on use of the software. Additional details are given here and the full terms of the license can be read here.
2. Support the Delivery of High-Quality Software
To build high-quality software, the NA-MIC Service Core has developed high-quality software processes and tools that are used in building the NA-MIC Kit and that are distributed with the NA-MIC Kit. Key aspects of those processes include the following:
- Builds upon and contributes to industry standards
- NA-MIC's Engineering Core is tasked with using and contributing back to the open-source components of the NA-MIC Kit. Specific examples of those open-source components are listed here.
- Is built using open design discussions
- We are hosting
- Wiki pages to post designs and maintain an overview of NA-MIC efforts
- Email lists to gather comments, host discussions, and resolve issues (Approximately a dozen mailing lists have been established to cover various topics within the NA-MIC community.)
- Weekly TCons, Project Tcons, All Hands Meetings, Project Weeks, and more to coordinate efforts and maintain long-term plans
- Mantis bug tracker to post errors and make feature requests
- We are hosting
- Supports multiple platforms
- CMake provides cross-platform build and deployment systems.
- Uses a consistent coding style
- A consistent coding style simplifyies learning, debugging, and extension. We are using the VTK and ITK style guidelines for our efforts.
- Is thoroughly tested
- CTest and CDash are used to test the operation of 3D Slicer and the NA-MIC Kit on a multitude of platforms, every night.
- Slicer testing dashboard
- General NA-MIC dashboard
3. Support the Delivery of Useful Algorithms
This is achieved in two ways:
- The Service Core fosters communication between Cores. The wiki, web pages, data servers, and code repositories are channels for communication and collaboration. We monitor the exchange of data and ideas between the Cores by attending teleconferences, Project Events, etc., and we adapt our infrastructure (bandwidth, server tools, etc.) to ensure smooth communication.
- The Service Core works with the Computer Science Core to support algorithm validation activities. We investigate infrastructure that support distributed computing for parameter space explorations, algorithm comparisons, and longitudinal studies. We also work with the Computer Science Core to refine CTest so that they can validate algorithms (e.g., conduct leave-one-out analyses), in addition to testing code for consistent output.
4. Gather and Respond to Community Feedback
An important part of endearing community involvement is being responsive to their needs:
- We monitor the communication infrastructure to identify trends that point to areas of strength and weakness in the NA-MIC Kit.
- We actively work with the Dissemination and Training Cores to involve the community in the NA-MIC Kit.
5. Facilitate the Sharing of Science
The foundation of the NA-MIC Kit, the NA-MIC Community, and Open Science is the sharing of software, documentation, and data to accelerate the pace of research in the field of medical image analysis. This foundation will be created and preserved by the following:
- Support Software Modularity. The Service Core works with the NITRC website (http://www.nitrc.org/) and creates its own website to host modules that extend the capabilities of the NAMIC Kit. The Service Core applies documentation and testing standards to these modules.
- Manage Publications. The Service Core operates and extends the PubDB repository of NA-MIC publications, http://www.na-mic.org/publications. It will be extended to automatically harvest PMID’s from the NIH websites.
- Host Data Repositories. The Service Core and the Computer Science Core will work together on promoting and maintaining a public XNAT database of medical images. Use within and beyond NA-MIC will be encouraged.
- Recognize Contributions. In all of the above endeavors, acknowledging contributors is important to encouraging community involvement. The Service Core is tasked with ensuring that communication and publication channels carry the appropriate acknowledgments. For example, modules already extend the user-interface of 3D Slicer to display the contributor’s logo when that module is run.
Infrastructure for Sharing
Two of the foundational technologies of our data and publication dissemination infrastructure are XNat and MIDAS.
The Extensible Neuroimaging Archive Toolkit (XNAT) is an open source software platform designed to facilitate management and exploration of neuroimaging and related data. XNAT includes a secure database backend and a rich web-based user interface. More...
MIDAS is open-source software for hosting heterogeneous databases, e.g., databases of images, publications, meta-data, presentations, and more. MIDAS also provides interfaces so that its data can be easily accesses over the web and via C++/python/Java. MIDAS can also harvest data from other databases on the web, e.g., PubMed and genomics databases. NA-MIC has a MIDAS installation to serve as the NA-MIC Publications Database. MIDAS is also being used to host NA-MIC data, the Insight Journal, the MIDAS Journal, and the VTK Journal. Direct access to MIDAS's data from within Slicer is being developed to support informatics analysis and visualization. Direct access to MIDAS's publications from within Slicer is being developed to provide documentation and integrative tutorials. More...
Computer Systems and Networking
Beyond the software, community, and processes of NA-MIC is an extensive collection of computer systems and services that rivals the rigor and complexity of a major corporation.
- Testing farm
- A rack of testing machines has been configured.
- Backups
- NA-MIC system every day collects all the system description, Wiki and bug tracker databases, and all other important files. These files are packaged once a day
- The system from remote location copies these packages to its location. Once the files are copied, the remote system triggers the system at Kitware.
- If the system at Kitware is not triggered within 5 hours of the backup time, it sends e-mails to several NA-MIC people to make sure everything is ok.
- Spam protection
- Wiki pages are commonly targeted by people creating bogus links to their own pages to raise the rank of their own pages. This results in many unnecessary links being present on certain pages, as well as vandalising of those pages.
- NA-MIC Wiki uses a spam protection scheme developed by Kitware within the MediaWiki software. This scheme includes a list of all users that can create pages that contain links to other pages.
- If a user that is not authorized tries to make a link to some page outside the NA-MIC community, an e-mail is sent to the administrators.
- The user is also presented with the page that explain why his post did not come through. User now has an option to request for the authorization. The page looks like this:
- Hardware
- Kitware has purchased and installed a web server at the BWH computer site.
- Kitware has purchased and installed a rack of testing machines at Kitware's computer center.
- The NAMIC server has been recently updated with RAID for improved backup, fault tolerance and performace.
- Kitware has recently run fiber to the Clifton Park office to improve network performance (i.e. a 3-4x speed gain)