codebeamer Architecture #2732969/HEAD / v911 |
Tags:
not added yet
codebeamer ArchitectureTable of Contents
IntroductionThis document describes the architecture and major components of codebeamer ALM. Overview
Architecture details
codebeamer: Architecture and Componentscodebeamer ALM is a layered web application that is built using several industry-proven technologies. The platform uses several open source frameworks. codebeamer consists of the following main layers and components:
A web container: Apache TomcatSince it is a web application, users working with codebeamer ALM are using their web browsers. codebeamer uses an Apache Tomcat web server as the container to process web request from users. Web requests are handled by the web controllers using the Spring Model-View-Controller framework. For more complex scenarios, Spring WebFlow is used. These controllers are combined with the industry-standard JSP pages. When the content is independent from web requests, Apache Velocity is used to serve the HTML content or for example to render wiki plugins or emails. The components of the application are managed by the most popular open source framework: Spring. The web container also features functionality for accessing data managed by codebeamer ALM remotely, using an open REST API. This can be used to build custom applications to extend codebeamer ALM with, or to build custom integrations with other systems or external components. Security LayerSecurity is a very important factor of enterprise applications such as codebeamer ALM. Security features are critical to control who can access what information in the system, and to control what operations are allowed for each user. Therefore, security is handled through the application starting from a top level Security layer. This layer handles Authentication (e.g. answers the question Who are you?), and the Authorization of each user (What are you allowed to do?). This is the first line of the defense over the web controller layer. Combined with the various security and permission checks implemented throughout the core of codebeamer ALM, this gives perfect confidence over security and access control. Security is configured throughout the application on various levels: system administrators can configure global security Groups for users which can be detailed granularly (down to projects by Project Managers using Roles). Various permission tokens can be granted to these entities (Groups/Roles/Users). By checking the existence of such tokens, the system can decide if the user is permitted to view certain pieces of information, or to execute certain actions. For more details see: Basics: Projects, Roles, Groups, Members and Users. codebeamer ALM Corecodebeamer's core is built as a traditional layered architecture, where the top level is a set of manager services covering the various functional areas of the application (such as a manager service for Tracker operations, or a manager service for Test Management). Each manager service is communicating with various DAO layers and is storing data in SQL databases. Data is modelled through traditional DTOs, which are mapped to SQL database tables models using custom SQL statements. These SQL/DAO layers are carefully crafted for optimal performance. These are combined with efficient caching, lazy and paged fetching of data. Managers and DAOs are taking care of the security/permissions aspects of the application on several layers. History, Auditing and complete Traceabilitycodebeamer ALM is designed to keep track of each item's history of changes, both in terms of content and meta data (e.g. information about when and who made the change). Therefore, users can see what happened to all work items in the past and can compare versions or even go back to certain steps in the artifact's history. This helps keep track of changes and verify the most valuable data in the system. Relying on this feature, compliance audits can simply verify what is and has been happening to the requirements, test cases, and all other work items. Traceability on the other hand provides an overview of the impact of any desired change by tracing the dependencies between all entities in the system. User Management and LDAP/Active Directorycodebeamer ALM contains a User Management module which is used as a central component for security. The system's users are fully managed within codebeamer ALM, where the concepts of Groups, Roles, and Permissions enable to control what actions individual users can perform. For many enterprises there is a need for central User Management, which is also supported by codebeamer ALM via synchronizing LDAP/Active Directory services. Searching and Reportingcodebeamer ALM implements several techniques to allow users to efficiently find any information they need. These are:
Workflow enginecodebeamer ALM's core contains a custom-built workflow engine. This engine allows users to add and customize Workflows for requirements or other work items. The standard workflows that come with codebeamer ALM out of the box are highly customizable. This workflow engine is automatically triggered when a work item's status is changed, and enables users to automate various processes. Wiki engine with Wiki pluginsIn order to make sure the developed product is of high quality and fits user specifications, the requirements descriptions also need to be complex and rich. Wikis provide an easy way/markup/syntax to write complex pages quickly. codebeamer ALM includes a powerful Wiki engine based on a fork of JSPWiki. The rich Wiki Content can be displayed in a versatile way within codebeamer ALM. The Wiki engine will render and transform the contents of any wiki page to real HTML pages so that they may be simply viewed in browsers. The Wikis are used for example to:
Event engineAny changes in work items, wiki pages, or other artifacts within codebeamer ALM (whether due to user actions or system automation events) triggers internal events in codebeamer's core. These events may then be used by the system to send notification emails to the affected user(s), to update the affected artifact's history, or to enable communication between system components. The Event engine may be customized, so in case custom automation processes or synchronization with external systems are necessary, Custom event listeners can simply be written. The content of standard notification emails sent by codeBeamer ALM can also be simply customized. Background jobsAs with any complex and large system, sometimes codebeamer ALM must perform periodical cleanups, scheduled jobs, or other time-consuming background processes. These are performed by the built-in Scheduler/Job engine. Some examples are:
SCM Management: Managed Repositories and SCMLoopcodebeamer's Managed Repository technology provides an easy-to-use, consistent, provider-independent repository management tool with project-, group- and role-based administration capabilities, across multiple repositories. Managed Repository features:
It is also possible to integrate codebeamer ALM with external repositories which are not managed directly by the system. This requires that the external repository is instrumented by SCMLoop, a special hook software. SQL databasescodebeamer ALM uses an SQL database for storing most of its model data. Currently PostgreSQL, MySQL and Oracle databases are supported. The codebeamer core automatically manages the various database aspects like schema installation and upgrades, indexing, query optimization, caching, and transactions. The platform's built-in cbQL domain-specific language can be used to query SQL data easily. This engine translates simple cbQL queries to native SQL queries to ensure security. codebeamer ALM uses database transactions for data consistency in the repository. Using Oracle database systems all work items, attachments, documents, and wiki content can be archived in the database (default setting). For the best performance, the database system and codebeamer ALM should be configured to use the same high-speed network with low latency times. For optimal performance, advanced fetching techniques like paging and data caching is used on various levels throughout the application. File systemcodebeamer may use disk storage for non-transactional data or large files. An example is Document Management, where big files can be more efficiently stored/retrieved on the native file-system than in SQL databases. SCM tools use their native format (a Git repository is stored on the filesystem), but their information is automatically synchronized with the SQL database by using the appropriate event hooks or change listeners (such as SCMLoop). Another native disk storage is the Lucene search engine, which uses its proprietary indexing technology to perform free-text searches more efficiently. Lucene indexes are automatically and periodically updated when changes happen in codebeamer ALM. This process is controlled by the Event engine and other mechanisms throughout the system. Performance Test ResultscodeBeamer ALM's Official Scalability Performance Test Report 2019 |
Fast Links
codebeamer Overview codebeamer Knowledge Base Services by Intland Software |
This website stores cookies on your computer. These cookies are used to improve your browsing experience, constantly optimize the functionality and content of our website, furthermore helps us to understand your interests and provide more personalized services to you, both on this website and through other media. With your permission we and our partners may use precise geolocation data and identification through device scanning. You may click accept to consent to our and our partners’ processing as described above. Please be aware that some processing of your personal data may not require your consent, but you have a right to object to such processing. By using our website, you acknowledge this notice of our cookie practices. By accepting and continuing to browse this site, you agree to this use. For more information about the cookies we use, please visit our Privacy Policy.Your preferences will apply to this website only.