Sie sind auf Seite 1von 21

F1 Server

F1
› 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
Timeline

› 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

Transport
Test
Server Interface Integrations
Framework

Content Mgmt.
Services

Requirements
Issue Mgmt.
Versioning

Workflow
Administration
Configuration
Authentication
Test case Licensing
Data …

Connection Pooling Data access Revision


Transactions
Resource tracking
Library
Oracle MS-SQL Sybase …

Metadata
Repository
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
Project
› Asset
– Asset types
– Generalized Asset concept
Asset – Relationships
– Permissions
– …

7 Presentation
F1 System features
System

› Installation configuration
– Installer
– DBMS host configuration
– Flexible installation topology
› User & Group management
– LDAP
– 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
System

› 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
Database

› 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
projects

10 Presentation
F1 Projects Project

› Management of Users, Groups & Permissions for the


project
› 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

TBD
› Encapsulates business objects and related business
logic
– 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
Integrations

• HTTP and Socket
– Designed to be efficient

Transport

In-Proc
Server Interface

F1

14 Presentation
Presentation Server on Server Interface

› UI Framework
Presentation Server
– Session Management
Administration
Configuration

Content Mgmt.

Issue Mgmt.
Versioning
• Track active workspace and

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

Services
Issue Mgmt.
Versioning

Workflow

Administration
Configuration
Contribution, …)
Authentication
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

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

18 Presentation
Data model

› Asset table
– Unified way of referencing various kinds of business
objects
• 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
capabilities
› 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