ibm rational software development conference 2008

27
IBM Rational Software Development Conference IBM Rational Software Development Conference 2008 © Copyright 2008 IBM Corporation. All rights reserved. ® Introduction to the Jazz Technology Platform: Architecture Overview and Extensibility Alfredo Gutiérrez Program Director, Technology Events, IBM Rational [email protected]

Upload: others

Post on 03-Feb-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IBM Rational Software Development Conference 2008

IBM Rational SoftwareDevelopment ConferenceIBM Rational SoftwareDevelopment Conference

2008

© Copyright 2008 IBM Corporation. All rights reserved.

®

Introduction to the Jazz Technology Platform: Architecture Overview and Extensibility

Alfredo GutiérrezProgram Director, Technology Events, IBM [email protected]

Page 2: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 2

Agenda and Objectives

� We will cover:

�Jazz Objectives

�Jazz Platform Architecture

�Jazz Platform Extensibility

�Future thoughts. We’re not done yet…

Page 3: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 3

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

Page 4: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 4

Think differently

�Current approaches for building tools don’t go far enough

"We can't solve problems by using the same kind of thinking we used when we created them." A. Einstein

Page 5: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 5

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

Page 6: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 6

Items and relationshipsEvent history,

Item history trends

Jazz RepositoryDefectsRequirementsUse-cases, …..

….,BuildsSource code,

Test-casesTest results

Storage

Event Notification Conversation

Project and Team Structure Search

ProcessEnactment

Securityand Access

EclipseClient Platform

(RPC)

WebClient Platform

(AJAX)

Visual StudioClient Platform

Jazz Collaboration Server

Jazz Architecture

Rational ClearQuest

Rational ClearCase

Page 7: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 7

Extending the Jazz Platform – Understanding jazz.war

/jazz/*

App Server

Jazz.war

Equinox B

ridge Servlet

Equinox Framework

TeamServices

TeamWeb

WorkItemServices

PlanningServices

WorkItemWeb

Planning Web

SCM Services

/jazz/service/*

/jazz/web/*

../IWorkItemService

../IFileSystemService

../IPlanRestService

../WorkItemView.js

../PlanView.js

Jazz Server Provisioner

Page 8: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 8

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 changeevents and feed rendering

�Provides access to and manages component services

�Process component. Provides:

� projects,

� teams,

� and process.

�Runs in an OSGI environment

Eclipse Equinox

Jazz Server Kernel

Jazz Server ExtensionsWeb UI

Container (Jetty, Tomcat, WAS)

Jazz Team Server

You can create a process awareservices that enables itself to be governed by process.

Page 9: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 9

Jazz Platform - Service programming model

� It’s 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)

S

Page 10: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 10

Jazz Platform – repository data model…three logical DBs in one

� An open-ended item store

� Stores structured items as XML

� Stores arbitrary content as BLOBs

� A declarative indexing story to support query

� Lucene text index to support full-text search

� A snapshot framework for extracting summary data for reporting

Data warehouse DB

Operational DB

Item store(private)

Index data(extracts queriableportion)

Data Warehouse(public

reporting DB)

indexer extractor

S

get

put

Highly Optimized Relational DB

Cognos BIRT …

Page 11: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 11

Jazz Team Server - Self-Serve Administration

Page 12: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 12

Jazz Team Server - Authentication and Permissions

RepoDB

Corporate Directory

server

JazzTeam server

LDAPimport

App S

erver Authentication

Process Permissions- team-managed

- role-based- dynamic

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

Page 13: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 13

Process basics

� Teams work on projects

� Each project follows a process

� Work inside the scope of a team follows the team’s process

� Team members play roles defined by the process

� Process manifests itself through artifacts types, operations manipulating the artifacts, and artifact change events

Page 14: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 14

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

Subversion

Enabled

RationalBuild Forge

RationalClearQuest

RationalClearCase

Rational Team Concert

Enabled

Enabled

Enabled

Subversion

Enabled

RationalBuild Forge

RationalClearQuest

RationalClearCase

Rational Team Concert

Enabled

Enabled

Enabled

Page 15: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 15

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.

Page 16: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 16

Process Execution Flow

Client ServerComponent Process Component Process

PreconditionsPermissions

PreconditionsPermissions

HandleRequest

Follow-ups

Follow-ups

HandleRequest

Server Request

Request Response + Process Reports

Client Request

Process Hints Enforced Process Rules

Page 17: IBM Rational Software Development Conference 2008

IBM Rational SoftwareDevelopment ConferenceIBM Rational SoftwareDevelopment Conference

2008

© Copyright 2008 IBM Corporation. All rights reserved.

®

Extensibility of the Jazz Platform

Page 18: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 18

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’)

Page 19: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 19

Jazz Eclipse Client

Anatomy of a Jazz Component� Client library

� Services / REST*� Storage model extension

� Web extension

� Any of the three or any combination

*Representational State Transfer

Jazz Web ClientAJAX based

Jazz Wiki Component

wiki.client.jarwiki.common.jarwiki.server.jarwiki.web.jar

Jazz Team Server

S

Bundle based programming model.

Page 20: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 20

Client Applications

� 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 extensionsJazz Client Kernel

Eclipse Client

Eclipse Platform

Jazz UIF

Jazz Client Extensions

Jazz Client Extensions

Java Client

Jazz Client Kernel

Page 21: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 21

Plain Java Extension

� 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);

Jazz Client Extensions

Java Client

Jazz Client Kernel

Page 22: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 22

What are Client Libraries?

� A bundle that provides a sophisticated façade for a component’s functionality� A service running on the Jazz Team server

� Looks like you’re 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 component’s 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

Page 23: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 23

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

Page 24: IBM Rational Software Development Conference 2008

IBM Rational SoftwareDevelopment ConferenceIBM Rational SoftwareDevelopment Conference

2008

© Copyright 2008 IBM Corporation. All rights reserved.

®

Looking ahead

We’re not done yet…

Page 25: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 25

JRS Experiment: Implement tools like an internet application

� Build on Jazz experiences in Web UI

� Data specified independently of tools

� All data are resources with URLs

� Ubiquitous access

� Tools access data through HTTP/APP

� 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

� Search and query through “structured indexes”, independent

� Standard analysis, query, reporting

HTTP GET/PUT/POST/DELETE

Index

Programming modelSpecified in Open ServicesFor Lifecycle collaboration

Page 26: IBM Rational Software Development Conference 2008

IBM Rational Software Development Conference 2008

Introduction to Jazz Architecture 26

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

Page 27: IBM Rational Software Development Conference 2008

IBM Rational SoftwareDevelopment ConferenceIBM Rational SoftwareDevelopment Conference

2008

© Copyright 2008 IBM Corporation. All rights reserved.

®

Questions?

Thank you…