Sei sulla pagina 1di 27

IBM Rational Software

Development Conference

2008

Introduction to the Jazz Technology Platform:


Architecture Overview and Extensibility
Alfredo Gutirrez
Program Director, Technology Events, IBM Rational
fredgz@us.ibm.com

Copyright 2008 IBM Corporation. All rights reserved.

IBM Rational Software Development Conference 2008

Agenda and Objectives


 We will cover:
Jazz Objectives
Jazz Platform Architecture
Jazz Platform Extensibility
Future thoughts. Were not done yet

Introduction to Jazz Architecture

IBM Rational Software Development Conference 2008

Objectives/Architecture Requirements
 No boundaries between people
Data and tasks from one tool are seamlessly visible in others
Creative Collaboration across geography and organization

 Tools live the process


 Capability is strong but unobtrusive

 Support wide range of configurations


Need modular, composable solution

 Stay flexible

Introduction to Jazz Architecture

IBM Rational Software Development Conference 2008

Think differently

 Current approaches for building tools dont go


far enough

"We can't solve problems by using the same kind


of thinking we used when we created them."
A. Einstein

Introduction to Jazz Architecture

IBM Rational Software Development Conference 2008

Think differently
 Desktop/Database Integration  Global Integration
 Function First  Team First
 Manual  Process Aware & Transparent
 Pre-determined Tool Function  Dynamically Extensible
 Proprietary infrastructure  Internet Standards
 Rigid Process  Creative Collaboration
Introduction to Jazz Architecture

IBM Rational Software Development Conference 2008

Jazz Architecture
Eclipse
Client Platform
(RPC)

Web
Client Platform
(AJAX)
Process
Enactment

Project and
Team Structure

Visual Studio
Client Platform

Security
and Access
Search

Jazz Collaboration Server

Event Notification

Conversation
Storage

Jazz Repository
Rational
ClearCase

Defects
Requirements
Use-cases, ..

Introduction to Jazz Architecture

Items and relationships


Event history,
Item history trends

.,Builds
Source code,
Test-cases
Test results

Rational
ClearQuest

IBM Rational Software Development Conference 2008

Extending the Jazz Platform Understanding jazz.war


App Server
Jazz.war
Jazz Server Provisioner

/jazz/*

../IWorkItemService
../IFileSystemService
../IPlanRestService
/jazz/web/*
../WorkItemView.js

Equinox Bridge Servlet

/jazz/service/*

Equinox Framework

../PlanView.js

Introduction to Jazz Architecture

WorkItem
Services
SCM
Services

Team
Services
Planning
Services

Team
Web

WorkItem
Web
Planning
Web

IBM Rational Software Development Conference 2008

Jazz Server Kernel


 Team Repository Services
 Provides the basics for
querying, fetching, and
updating repository data
 Provides a platform for extensible
AJAX Web UIs
 Provides support for change
events and feed rendering

Jazz Team Server


Web UI

Jazz Server Extensions


Jazz Server Kernel
Eclipse Equinox

Container (Jetty, Tomcat, WAS)

 Provides access to and manages


component services
 Process component. Provides:
 projects,
 teams,
 and process.

You can create a process aware


services that enables itself to
be governed by process.

 Runs in an OSGI environment

Introduction to Jazz Architecture

IBM Rational Software Development Conference 2008

Jazz Platform - Service programming model


 Its stateless services all the way down
 Services are contributed by bundles

 Statelessness is key to scalability


 All state is in the DB, all client interactions
are atomic
 Clusterable and restartable
 No session state (clients are stateful)

Introduction to Jazz Architecture

IBM Rational Software Development Conference 2008

Jazz Platform repository data model


three logical DBs in one
 A declarative indexing story to support query

 An open-ended item store


 Stores structured items as XML
 Stores arbitrary content as BLOBs

 Lucene text index to support full-text search


 A snapshot framework for extracting summary
data for reporting

Cognos

BIRT

Operational DB

get
put

Item store
(private)

indexer

Index data
(extracts
queriable
portion)

extractor

Data Warehouse
(public
reporting
DB)

Highly Optimized Relational DB

Data warehouse DB
Introduction to Jazz Architecture

10

IBM Rational Software Development Conference 2008

Jazz Team Server - Self-Serve Administration

Introduction to Jazz Architecture

11

IBM Rational Software Development Conference 2008

Jazz Team Server - Authentication and Permissions

App Server Authentication

Corporate
Directory
server

Repository Permissions:
(Managed by your IT department)
-Admin
-Writer
-Reader

LDAP
import

Jazz
Team server

Introduction to Jazz Architecture

Process Permissions
- team-managed
- role-based
- dynamic

Repo
DB

12

IBM Rational Software Development Conference 2008

Process basics
 Teams work on projects
 Each project follows a process
 Work inside the scope of a team follows the teams process
 Team members play roles defined by the process
 Process manifests itself through artifacts types, operations manipulating the
artifacts, and artifact change events

Introduction to Jazz Architecture

13

IBM Rational Software Development Conference 2008

Configurability through Process


 Allows team specific work products and behavior
 Allows team specific conditions under which client-side and server-side
operations are allowed to proceed
 Allows team specific participants for client-side and server-side operations
 Allows team specific reactions to server-side change events
 The Jazz Platform itself is artifact and process neutral
 Its the components that explicitly introduce the specifics of process configuration
Enabled

Enabled

Rational
Team Concert

Rational
ClearQuest
Rational
ClearCase

Introduction to Jazz Architecture

Enabled

Subversion

Enabled

Rational
Build Forge

14

IBM Rational Software Development Conference 2008

Example: Finding the Right Process (the Jazz Process)


1 Jazz Project area defines process

2 Jazz team area does not customize the process


3 Process team area customizes the process

Myth: Developers hate process.


Truth: Developers are ok with process if they defined it
and it helps them get their work done.

Introduction to Jazz Architecture

15

IBM Rational Software Development Conference 2008

Process Execution Flow


Server

Client
Component

Component

Process

Process

Client Request

Preconditions
Permissions
Handle
Request
Server Request

Preconditions
Permissions
Handle
Request
Follow-ups

Follow-ups

Request Response + Process Reports

Process Hints
Introduction to Jazz Architecture

Enforced Process Rules


16

IBM Rational Software


Development Conference

2008

Extensibility of the Jazz Platform

Copyright 2008 IBM Corporation. All rights reserved.

IBM Rational Software Development Conference 2008

The Jazz SDK and Jazz Labs


 Two evolving sources of information for Jazz extenders on Jazz.net
 SDK is the primary source, the essential stories for extending the platform (wiki RtcSdk)
 Jazz Labs is more experimental (wiki JazzLabs)

Introduction to Jazz Architecture

18

IBM Rational Software Development Conference 2008

Anatomy of a Jazz Component


Jazz Wiki Component
wiki.client.jar
wiki.common.jar
wiki.server.jar
wiki.web.jar

 Client library
 Services / REST*
 Storage model extension

 Web extension
 Any of the three or any combination
*Representational State Transfer

Jazz Eclipse Client

Bundle based programming model.

Jazz Team Server


Jazz Web Client
AJAX based

Introduction to Jazz Architecture

19

IBM Rational Software Development Conference 2008

Client Applications
 Jazz Client Kernel

Java Client

Jazz Client Extensions


Jazz Client Kernel

 Provides access to and manages repository connections


 Provides the basics for querying, fetching, and caching repository data
 Provides access to and manages feed subscriptions and feed data
 Provided access to and manages client libraries
 Provides the notions of projects, teams, and process
 Runs in OSGI environments such as eclipse RCP and in plain java clients

 Jazz UI Foundation
 Basic UI building blocks for Jazz

 Jazz client extensions


 Client libraries
 UI or UI extensions

Eclipse Client

Jazz Client Extensions


Jazz UIF

Jazz Client Kernel


Eclipse Platform

Introduction to Jazz Architecture

20

IBM Rational Software Development Conference 2008

Plain Java Extension

Java Client

Jazz Client Extensions


Jazz Client Kernel

 It is a normal plain Java application


 Establishes one or more connections to Jazz repositories
 Uses (and provides) client libraries
TeamPlatform.startup();
ITeamRepositoryService srv = TeamPlatform.getTeamRepositoryService();
ITeamRepository repo = srv.getTeamRepository(myRepositoryURL);
repo.login(progressMonitor);
IQueryClient qryClnt = repository.getClientLibrary(IQueryClient.class);
IQueryResult result= qryClnt.findAll(myQueryExpression);
processWorkItems(result);

Introduction to Jazz Architecture

21

IBM Rational Software Development Conference 2008

What are Client Libraries?


 A bundle that provides a sophisticated faade for a components functionality
 A service running on the Jazz Team server
 Looks like youre just invoking client side Java API
 Hides complexity of transport

 Instantiated only once per repository connection


 may have state and allow for listeners

 Talks to Jazz platform and component specific services on the server


 Can leverage smart, optimized communication patterns

 Manages the caching of the components repository data


 Can depend on and talk to other client libraries
 Interesting client side applications are possible by using the Jazz Client Kernel and
existing client libraries

Introduction to Jazz Architecture

22

IBM Rational Software Development Conference 2008

Other key extensibility stories for RTC 1.0


 Create a new report
 Use the BIRT report editor and the RTC data warehouse schema to provide custom
reporting (sample reports provided)

 Extending the Build system


 Templates driving Ant based builds provided.
 Provide a new build template, e.g. Maven support

 Create a new process template


 Process component provides XML schema for templates
 Includes process-specific work item types, supporting reports, process guidance
 Templates are then used to launch projects using that template
 See examples in RTC

Introduction to Jazz Architecture

23

IBM Rational Software


Development Conference

2008

Looking ahead
Were not done yet

Copyright 2008 IBM Corporation. All rights reserved.

IBM Rational Software Development Conference 2008

JRS Experiment: Implement tools like an internet application


 Build on Jazz experiences in Web UI
 Data specified independently of tools

Programming model
All data are resources with URLs
Specified in Open Services
 Ubiquitous access
For Lifecycle collaboration
 Tools access data through HTTP/APP
HTTP GET/PUT/POST/DELETE  Multiple tools same data
 Data integration without forcing same
tool for multiple roles
 References are embedded URLs

 Cross technology/location
 Resources have representations

 XML encouraged, not required

Index

 Search and query through structured


indexes, independent

 Standard analysis, query, reporting

Introduction to Jazz Architecture

25

IBM Rational Software Development Conference 2008

Summary: Ongoing Architectural Innovation


 The Jazz Platform is the plumbing inside Rational Team Concert 1.0 product
 The platform and products built on it are open to extensibility, Jazz.net wiki will be
the place to go for details
 The Jazz Core team continues to innovate on the Platform, improving
 Capability
 Scalability
 Configurability
 Connectivity

Introduction to Jazz Architecture

26

IBM Rational Software


Development Conference

2008

Questions?
Thank you

Copyright 2008 IBM Corporation. All rights reserved.

Potrebbero piacerti anche