Living Architectures - from eclipse to jazz



Similar documents
Requirements Management im Kontext von DevOps

Agile Development with Jazz and Rational Team Concert

OSLC Overview. Michael Fiedler, IBM , ARTEMIS Technology Conference ARTEMIS Joint Undertaking

IBM Rational DOORS Next Generation

Take full advantage of IBM s IDEs for end- to- end mobile development

SOA, case Google. Faculty of technology management Information Technology Service Oriented Communications CT30A8901.

Introduction to IBM Worklight Mobile Platform

IBM Rational Software

A new approach to automotive electric/electronic engineering life-cycle management

Best Practices for Programming Eclipse and OSGi

IBM Rational Software

Data Grids. Lidan Wang April 5, 2007

Develop enterprise mobile applications with IBM Rational software

Cloud Computing: Computing as a Service. Prof. Daivashala Deshmukh Maharashtra Institute of Technology, Aurangabad

enterprise IBM Rational Team Concert 2 Essentials

DevOps for the Mainframe

Building Web-based Infrastructures for Smart Meters

Redpaper. IBM Rational Workbench for Systems and Software Engineering. Bruce Powel Douglass Mats Gothe

Inside the Digital Commerce Engine. The architecture and deployment of the Elastic Path Digital Commerce Engine

Service Oriented Architectures

Collaborative DevOps Learn the magic of Continuous Delivery. Saurabh Agarwal Product Engineering, DevOps Solutions

ebay : How is it a hit

OSLC ALM-PLM Interoperability Proof of Concept. Mike Loeffler Systems Engineering IT Specialist General Motors Company

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Structured Content: the Key to Agile. Web Experience Management. Introduction

What is Open Source? Open source is defined by three key components:

Best Practices for Building Mobile Web

MarkLogic Server. Reference Application Architecture Guide. MarkLogic 8 February, Copyright 2015 MarkLogic Corporation. All rights reserved.

About the Speakers: Rainer Ersch, Research Engineer, Siemens Corporate Research and Technologies. Pascal Vera, Product Manager Siemens TEAMCENTERT

Prof. Dr. Lutz Heuser SAP Research

Integrating SharePoint with Lotus Notes and WebSphere Portal

Solutions for Quality Management in a Agile and Mobile World

In ediscovery and Litigation Support Repositories MPeterson, June 2009

Introduction to OpenUP (Open Unified Process)

OpenText Information Hub (ihub) 3.1 and 3.1.1

Duke University Program Design & Construction Course

Oracle Application Development Framework Overview

Integrating SharePoint with Lotus Notes: Strategic Coexistence

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

Pentaho Reporting Overview

Web Application Development for the SOA Age Thinking in XML

SOFTWARE TESTING TRAINING COURSES CONTENTS

Optimize workloads to achieve success with cloud and big data

Ontario Ombudsman. Goals

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Your Location Instant NOC using Kaseya. Administrator at Remote Location Secure access to Management Console from anywhere using only a browser

IBM Enterprise Content Management Product Strategy

Change Management for Rational DOORS User s Guide

TOSCA Interoperability Demonstration

Mashup Development Seminar

Developing the Architectural Framework for SOA Adoption

Practical Application of Service Oriented Architecture

Understanding Service-Orientation Part II: The Principles

E-Business Suite Oracle SOA Suite Integration Options

Enterprise SOA Strategy, Planning and Operations with Agile Techniques, Virtualization and Cloud Computing

Federal Enterprise Architecture and Service-Oriented Architecture

Customer Bank Account Management System Technical Specification Document

SOA REFERENCE ARCHITECTURE: WEB TIER

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

Developers Integration Lab (DIL) System Architecture, Version 1.0

Modern App Architecture for the Enterprise Delivering agility, portability and control with Docker Containers as a Service (CaaS)

What s New in Media Management v10.5

MatchPoint Benefits with SharePoint 2013

EnergySync and AquaSys. Technology and Architecture

Transform service delivery with HP Cloud Management

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

Modern Application Architecture for the Enterprise

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

Creating new university management software by methodologies of Service Oriented Architecture (SOA)

Introduction to Eclipse, Creating Eclipse plug-ins and the Overture editor. David Holst Møller Engineering College of Aarhus

Power Tools for Pivotal Tracker

IBM Rational Software for IBM i

Share the webinar Ask a question Votes (polling questions) Rate (before you leave) Attachments (you can download today s presentation)

The ADOxx Metamodelling Platform Workshop "Methods as Plug-Ins for Meta-Modelling" in conjunction with "Modellierung 2010", Klagenfurt

Cloud Computing with Windows Azure using your Preferred Technology

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.

Use service virtualization to remove testing bottlenecks

HPC Portal Development Platform with E-Business and HPC Portlets

YouTrack MPS case study

SAP BusinessObjects BI Clients

CloudCenter Full Lifecycle Management. An application-defined approach to deploying and managing applications in any datacenter or cloud environment

SOA and Cloud in practice - An Example Case Study

Leveraging Rational Team Concert's build capabilities for Continuous Integration

Feature Guide Elastic Path Cortex. Version 6.5.1

WHITEPAPER. Why Dependency Mapping is Critical for the Modern Data Center

SOA Planning Guide The Value Enablement Group, LLC. All rights reserved.

Taking control of the virtual image lifecycle process

Cloud Storage Standards Overview and Research Ideas Brainstorm

Open Source Development with the Elastic Path Ecommerce Platform

Transcription:

Living Architectures - from eclipse to jazz Erich Gamma IBM distinguished engineer IBM rational zurich research lab (please contact me if you are interested in a Praktikum or full time position) 2010 IBM Corporation

First Assignment: Eclipse A tools integration platform Scalable Easy to extend Enable a tools ecosystem Goal: Built to last 2010 IBM Corporation

Inspiration: how buildings last Stewart Brand: how buildings learn what happens after they're built stuff: furniture services: electrical, plumbing (7-15y) structure: foundation, load bearing walls (30-300y) site: geographical setting (forever) layers: evolve at different rates during the life of a building shear against each other as they change at different rates an adaptive building must allow slippage a building that lasts is adaptive and can change over time lasts for generations without total rebuilding Site 2010 IBM Corporation

structure foundation the eclipse plug-in architecture everything is a plug-in simple and consistent 2010 IBM Corporation

eclipse plug-in architecture plug-in == component set of contributions plug-in smallest unit of Eclipse function details spelled out in plug-in manifest extension point named entity for collecting contributions extension a contribution Example: a specific spam filter tool runtime controls and manages contributions plug-in platform runtime Extension Extension point 2010 IBM Corporation

scalability user visible appearance <action toolbarpath= search" icon="icons/opentype.gif tooltip= Open Type class="org.eclipse.jdt.opentypeaction"/> lazily instantiated using reflection org/eclipse/jdt/opentypeaction.class contribution implementation 2010 IBM Corporation

services plumbing: APIs Plug-in dependencies through APIs define APIs for stability binary compatibility is highest priority 2010 IBM Corporation

APIs first APIs don t just happen; we need to design them specifications with precisely defined behavior what you can assume (and what you cannot) it works API compliant documented classes API must have at least one client involved, preferably more 2010 IBM Corporation

example: API evolution in the Java Development Tools new APIs AST (Abstract Syntax Tree) AST rewriting code manipulation open-up contribute to quick fix/quick assist contribute to code assist push-down make JDT specific support available to other languages: template processors linked editing 2010 IBM Corporation

stuff, furniture - UI eclipse extension architecture is contribution based extensions contribute to the workbench the workbench manages and presents the contributions enables UI evolution 3.0 new look 2010 IBM Corporation

API innovation with continuity sometimes conflicting: innovation vs. API stability goal: plug-ins that are API compliant with respect to the previous release are expected to work on the latest eclipse release binary compatible source compatibility - some work is required porting guide PDE helps out techniques compatibility layer (new run-time) eclipse extension interface support: IAdaptable I*2 extensions interfaces recover removed interface methods compatibility plug-ins restart in a new package 2010 IBM Corporation

extension interfaces: IAdaptable adding interfaces to existing types Interface negotiation <extension point="org.eclipse.core.runtime.adapters"> <factory class="org.eclipse.jdt.internal.ui.javaelementadapterfactory" adaptabletype="org.eclipse.jdt.core.ijavaelement"> <adapter type="org.eclipse.ui.ipersistableelement"/> </factory> 2010 IBM Corporation

I*2 extension interfaces add new methods in extending API interface with extension interfaces avoids breaking existing implementors of an interface public interface IActionDelegate { } // original interface public interface IActionDelegate2 extends IActionDelegate { void dispose(); } if (d instanceof IActionDelegate2) { IActionDelegate2 d2 = (IActionDelegate2) d; d2.dispose(); // call new method } 2010 IBM Corporation

Key Lessons Modularity matters Everything is a plug-in no exceptions APIs are a huge commitment we would rather provide less API than desired (and augment) than provide the wrong (or unnecessary) API and need to support it indefinitely the tyranny of stable APIs API layers the challenge of product developers which API level does our product require and support n 1, n-2 14 2010 IBM Corporation

Eclipse API Tools (since Eclipse 3.4) Support to define an API baseline e.g. Eclipse 3.3 when working on 3.4 Check access restrictions API javadoc tags: @noimplement, @noinstantiate, @noextend Detect binary compatibility violations Detect version problems @since Problems are reported during builds 15 2010 IBM Corporation

Next assignment: A Tool Integration Platform Tool A Integrate many tools Heterogeneous environments that are flexible for partners and suppliers Acquisitions raise expectations for product integrations Global Connectedness Tool E DB UI LOGIC DB UI LOGIC DB Tool B UI LOGIC Tool C Distributed development, cross site product development Lifecycle / Agile Methods Flexible tools and process Tool D DB UI LOGIC DB UI LOGIC 16 2010 IBM Corporation

Traditional Tool Integration. Ouch. N2 possible point-to-point connections Limited coverage Closed APIs Vendor lock-in Tight Coupling Dependence on internal structures Lockstep upgrades Version incompatibilities Need something better 17 2010 IBM Corporation

IBM Software Group Rational software Jazz is a platform for transforming software delivery Rational Offerings c Third party Offerings Business Partner Offerings Jazz is Our vision of the future of systems and software delivery Future IBM Capabilities Collaboration Your existing capabilities Presentation: Mashups Business Planning & Alignment Product & Project Management Best Practice Processes Discovery Collaborative Lifecycle Management Query Compliance & Security Engineering & Software Tools Storage 3 rd -Party Jazz Capabilities Administration: Users, projects, process A scalable, extensible team collaboration platform An integration architecture enabling mashups and non- Jazz products to participate A community at Jazz.net where Jazz products are built Jazz is a platform for transforming how people work together to deliver greater value and performance from their software investments. Innovation for a smarter planet 18

IBM Software Group Rational software Inspiration: the Internet Amazingly scalable Integrates information on a massive scale Infinitely extensible Collaboration on unprecedented scale World-wide information visibility Index google, yahoo Web Pages html, css, js Audio/Video mp3, divx, mov Documents pdf, doc HTTP get /put /post Innovation for a smarter planet 19

IBM Software Group Rational software How does this work? All data are resources with URLs Resources have representations Representations are specified independently of tools Links are embedded URLs Tools (multiple) access data through HTTP get/put/post/delete Global Index Diagrams Requirements Change Requests HTTP get /put /post Innovation for a smarter planet 20

Living Architectures Jazz architectural principles Jazz separates the implementation of tools from the definition of and access to the data Data semantics do not rely on "secret knowledge" embedded in product code. Jazz can access and integrate data where it resides Jazz does not need to import and export data between tools or repositories Jazz assumes an open, flexible, distributed data model. Jazz does not assume that there is a single data model that is centrally managed, nor that each tool needs to understand the entire data model in order to participate. Jazz allows tools to be implemented in any Internet-aware programming language or platform. Jazz does not impose an implementation framework tied to a particular language or technology platform Provide optional toolkits to aid in tool implementation 21 Copyright IBM Corp., 2010. All rights reserved. Licensed under EPL, v1.0.

Data Integration the new way www linked data http://acme.com/paymentprocess http://acme.com/paymentservice about about about about HTTP/REST Enterprise Architecture Requirements Bus Proc Model Software & Solution Architecture Development Test 22 2010 IBM Corporation 22

Architectural Rules R1: Independent upgrade R2: Rich Integration R3: Limited application coupling R4: Open world 23 2010 IBM Corporation

R1: Independent upgrade Customers must be able to upgrade their products one at a time in the order of their choice product teams must commit to managing their dependencies so that this will always be the case Easy to say; easy to understand; highly motivational Smooth upgrading is a corollary customers must not feel that they are losing/breaking their applications (or application data) as a side effect of upgrading any of their products. Client - server compatibility issues are included here. 24 2010 IBM Corporation

R2: Rich integration (with loose coupling!) Link Dialogs enable cross repository linking Rich hovers provide at aglance, incontext information Dashboards in all products aid in transparency 25 25 2010 IBM Corporation

High Framework Traditional Library/API Degree of Coupling Import/Export REST API Surprise! Delegated REST API Low Clunky Seamlessness of Interactions Slick 26 26 2010 IBM Corporation

R3: Limited application coupling Applications will depend on few other applications. If we re not careful, we get caught in the dependency web Yet, applications need to interact 27 2010 IBM Corporation

R4: open world New products can be integrated after the fact, and their capabilities are reflected in the user and programmatic interfaces Don t assume you know everything up front 28 2010 IBM Corporation

Open Services for Lifecycle Collaboration An initiative aimed at simplifying tool integration across the software delivery lifecycle Barriers to sharing resources and assets across the software lifecycle Multiple vendors, open source projects, and inhouse tools Private vocabularies, formats and stores Inextricable entanglement of tools with their data Open Services for Lifecycle Collaboration Specifications for sharing lifecycle resources Inspired by Internet architecture Loosely coupled integration with just enough standardization Common resource formats and services A different approach to industry-wide proliferation 29 29 2010 IBM Corporation

Open Services for Lifecycle Collaboration Putting the approach into practice Step 1: Internet URLs for resources Step 2: Shared resource formats Step 3: Shared resource services 30 2010 IBM Corporation 30

Community: open-services.net Started in 2008 Open community contribution Scenario driven...a minimalist approach Divided into focus areas Change Management Quality Management Estimation & Measurement, Requirements Management, Solving integration in the open Wiki and mailing lists License terms Specifications are created under a Creative Commons Attribution copyright license Covenant specification implementers are free from patent claims by contributors Process Stages Scope (scenarios) Draft Convergence (IP covenant) Final Specification 31 31 2010 IBM Corporation

OSLC at Work Loosely coupled integration with just enough standardization Change Mgmt System Test Management POST, Query, etc change requests Spec dictates the bare minimal aspects of defect QM system posts seed data QM system gets URL of form; delegates back to CM system QM system can interface with any OSLC-compliant change management system 32 2010 IBM Corporation

Styles of Integration HTTP REST API Rich style Web technologies pervasive support across languages and Operating Systems Resource-oriented requires agreement on the resource representations Careful resource design can avoid closed world assumptions Exposes details of the data in resource representations Can leverage client libraries, but does they are outside of the API boundary HTTP REST API Delegated /Widget Style Relies on discoverable URLs for services Minimizes dependencies: delegates back to application Introduces out-of-bands communication between delegated form and host application 33 33 2010 IBM Corporation

OSLC Specification http://open-services.net/bin/view/main/cmspecificationv1 34 2010 IBM Corporation

Retrieving a Defect 35 2010 IBM Corporation

Retrieving JSON Representation of a Defect 36 2010 IBM Corporation

Updating a Defect PUT https://rtc.com:9443/jazz/resource/itemoid/com.ibm.team.workitem.workitem/_0j39qju-ed6cers9lb5aww?oslc_cm.properties=dc:title Accept: application/x-oslc-cm-change-request+xml If-Match: _1am9cFm0Ed6ELJg2MQ68Kg Content-Type: application/x-oslc-cm-change-request+xml <oslc_cm:changerequest xmlns:dc="http://purl.org/dc/terms/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:oslc_cm="http://open-services.net/xmlns/cm/1.0/"> <dc:title>my First Major Bug</dc:title> </oslc_cm:changerequest> 37 2010 IBM Corporation

Creating a Defect 38 2010 IBM Corporation

Service Discovery 1. Discover the existence of the Change Management system itself, known URL E.g. https://rtc:9443/rtc/rootservices 2. Discover the contexts (e.g. projects) in which change requests may exist, e.g project 3. Discover the services that are provided within that context 39 2010 IBM Corporation

Discovering the Creation Dialog 40 2010 IBM Corporation

Pattern: Discovery Challenge: URLs should be opaque to the clients to avoid tight coupling Solution: Inspired by the AtomPub specification Discovery documents Discovery and fetch entry URLs from a discovery document Discovery document has a well known URL Conceptually similar to the Factory design pattern 41 2010 IBM Corporation

UI Delegation for Resource Creation and Selection 42 2010 IBM Corporation

OSLC example: What are you testing? Team Concert (delegated UI) Single URL (OSLC) calls RTC Creates link on Test Case & Team Concert work-item 43 2010 IBM Corporation 43 43

OSLC example: Creating Test Cases from Requirements 44 2010 IBM Corporation 44

OSLC example: Resource Links in Requirements Tool Implemented By Validated By Back Link 45 2010 IBM Corporation45

What Makes the OSLC Approach Better? Traditional Approach Brittle integrations, versionspecific APIs Monolithic repository or import/export Boil the ocean meta-model design Forced migration to a common code base Premature architectural decisions A vendor-led partners program OSLC Approach Loosely-coupled URLs Minimalist Technology-neutral Incremental Open 46 2010 IBM Corporation 46

See it live at Jazz.net Transparent development Jazz architecture Jazz products Self-hosting Using Jazz products to develop Jazz products Learn about Jazz at Jazz.net Participate in the evolution Try it Sandbox available 47 2010 IBM Corporation