Sie sind auf Seite 1von 21

F1 Server

› Initial status
– Existing products with revenue streams and install bases
• PVCS VM, PVCS Dimensions – Source code control and process
• Tracker – Defect tracking
• Collage – Web Content Management
› Project Motivator
– New markets
– Single code base
– Integrated solutions
– Two projects nearing end of life
› Multiple groups
– Denmark
• Server, Architecture
– Oregon
• Clients, Defect tracking, Versioning
– London
• Process
› Unclear overall structure and responsibility breakdown

2 Presentation
Main Goals

› A Server framework for developing business

capabilities that interact on an intelligent and
significant level
› Platform for the company's enterprise products,
Versioning, Issue Mgmt, Requirements Mgmt, …
› A server that includes functions that are considered
standard in an enterprise solution
› Based on generic parts of Collage Server. Redesigned
as required to fit the architecture goals of F1
› Multi-tier solution that provides end-end
infrastructure, from DBMS to clients
› Support for major databases

3 Presentation
Other goals

› Allow multiple groups to work on different core server

logic – capabilities
› Single code base
› International support
› Automated server testing
› Centralized platform support
› Scalable…

4 Presentation

› Jan 2002
– Initial formulation of concept
› Jan 2003
– Official start of development based on Collage
– Series of Engineering meetings between groups to agree
on architecture and design (every 3 months)
› June 2003
– Course correction, more ambitious in rel 1.
› May 2004
– Cancelled by Serena

5 Presentation
Public Web Service
F1 Server

Desktop Clients JSP Client

IDE Integrations FTP & WebDav WebService
UI Framework
Server Interface Server Interface Server Interface
Transport Transport Transport

Server Interface Integrations

Content Mgmt.

Issue Mgmt.

Test case Licensing
Data …

Connection Pooling Data access Revision

Resource tracking
Oracle MS-SQL Sybase …

6 Presentation
Project and System

› System
– Installation configuration
System – System aspects
› Project Database
Project – RDMS specific
Database – Shared project aspects
› Project
– Users & groups
– Project configuration
› Asset
– Asset types
– Generalized Asset concept
Asset – Relationships
– Permissions
– …

7 Presentation
F1 System features

› Installation configuration
– Installer
– DBMS host configuration
– Flexible installation topology
› User & Group management
– Authentication
› Capability registration
› Licensing of capabilities
› Disaster recovery
› Audit logging
– Security violations
– Configuration changes
– …
› Diagnostics
› Scheduled tasks management with mail notifications
› FTP & WebDav server

8 Presentation
F1 System services

› Database support
– Connection pooling
– Resource tracking and management
– Support for multiple DBMS
– XML wrapping of SQL thus abstracting SQL out of code
› User Interface framework
– Extensible client for new capabilities
– Localizable
– Infrastructure for main UI constructs for consistency
– Infrastructure to ensure efficient server communications
› Events
› Scripting

9 Presentation
F1 Project Databases Project

› Created on a DBMS host

› Configuration of content storage
– Revision libraries
– DBMS storage
› Container for one or more projects
› Container for configurations across projects
– Example: promotion model (versioning), asset type
setup (content management)
– Management of Users, Groups & Permissions across

10 Presentation
F1 Projects Project

› Management of Users, Groups & Permissions for the

› Capability configuration within project
– Contribution setup in Content Management
– Workspace and Promotion group setup in Versioning
› Asset store for licensed capabilities

11 Presentation
F1 Assets Asset

› Asset is Reference point between capabilities

– Everything is an asset: files, folders, issues, workflow tasks,
requirements, …
– Assets are typed by mimetype, capability type
– Additional capability specific data can be added
› Asset types
– Hierarchy of types
– Definition of properties – system and capability required
– Definition of Metadata – user configurable
› Fine grained permission control as asset by asset basis
– Modeled after Windows NT permission model
› Audit log of asset related operations
– User, time, operation, description
– Extendable by capabilities
› System Asset service provide storage and linear versioning

12 Presentation
F1 Capabilities

› Encapsulates business objects and related business
– Objects implemented as F1 Assets
– Logic implemented as F1 Commands
› Self contained package
– Enabled by licensing
– Extends Server Interface with new functionality
– Extends Repository data model with new tables, columns
› Builds on F1 Server framework
› Built using F1 Capability SDK

13 Presentation
Interfacing to F1

› Server Interface
Java C++
Remote Remote
– “The” interface point
Server Interface Server Interface – Identical and collapsible In-
Transport Transport proc and Remote interface
• In-Proc (Java)
Socket / HTTP

• Remote (C++ or Java)

Presentation Server – Pluggable transport

• HTTP and Socket
– Designed to be efficient


Server Interface


14 Presentation
Presentation Server on Server Interface

› UI Framework
Presentation Server
– Session Management

Content Mgmt.

Issue Mgmt.
• Track active workspace and

other session states
• User preferences
F1-UI Framework
• Open SelectionSets
Server Interface VM CM IM WF
Transport • other Server Interface
– Caching
• Frequently used metadata
• Project configuration
Server Interface VM CM IM WF
• Types (Mime, Asset,
Content Mgmt.

Issue Mgmt.


Contribution, …)
Session Mgmt. – Load balancing

15 Presentation
Developing new capabilities
Capability Deliverables

› Client
– GUI desktop clients based on Server Interface
– Web application built on Presentation Server on Server Interface
› Server Interface
– Server Interface Capability object
– Remote and In-proc implementations
– Serializations for any payloads
› Server Capability
– Business Logic
– SQL Statements
– Data model schema
– Database upgrades
› Automated Test cases
› Well packaged functionality for other capabilities
– Versioned content storage from Versioning

17 Presentation
Data model for capability

› Capability data model should contain new tables for

new properties
› Capability can refer/link into

– Asset
– Asset Types
– History
– Permission
– Project Users History
– Projects
–… Asset

18 Presentation
Data model

› Asset table
– Unified way of referencing various kinds of business
• Allow requirements or issues to contain references to any
object type
– Allows storage of content through Asset system service
• Optionally versioned content
– Permissions, Asset history
› History table
– Logging of events
– Centralized reporting on events across capabilities and
object types

19 Presentation
Compromise Areas

› Extending existing tables vs. adding new

› Integration of functionality and business logic across
› Data model upgrades

20 Presentation
Defined model for business logic

› Strict set of rules for any business logic command

› Methods are Command object implementations
› Command object handles
– Database Connections, PreparedStatements, …
– Resource tracking and cleanup
– Transactions
– Exception handling
– Diagnostics
– Error detection and reporting
– Scripting and Event hooking (incomplete planning)
› Database, platform and locale independent

21 Presentation