Upload
duongmien
View
215
Download
1
Embed Size (px)
Citation preview
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]
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…
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
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
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
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
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
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.
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
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 …
IBM Rational Software Development Conference 2008
Introduction to Jazz Architecture 11
Jazz Team Server - Self-Serve Administration
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
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
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
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.
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
IBM Rational SoftwareDevelopment ConferenceIBM Rational SoftwareDevelopment Conference
2008
© Copyright 2008 IBM Corporation. All rights reserved.
®
Extensibility of the Jazz Platform
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’)
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.
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
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
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
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
IBM Rational SoftwareDevelopment ConferenceIBM Rational SoftwareDevelopment Conference
2008
© Copyright 2008 IBM Corporation. All rights reserved.
®
Looking ahead
We’re not done yet…
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
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
IBM Rational SoftwareDevelopment ConferenceIBM Rational SoftwareDevelopment Conference
2008
© Copyright 2008 IBM Corporation. All rights reserved.
®
Questions?
Thank you…