30
www.sparxsystems.com Collaborative Modeling Collaborative Modeling for Interoperability for Interoperability Standards Standards Ben Constable Chief Operations Officer Sparx Systems IM Users Group Meeting, Genval 2009

Collaborative Modeling for Interoperability Standards

Embed Size (px)

DESCRIPTION

Collaborative Modeling for Interoperability Standards. Ben Constable Chief Operations Officer Sparx Systems. CIM Users Group Meeting, Genval 2009. Overview. Collaborative Modeling What does it involve? Examples in Utilities, Geospatial and beyond… Challenges, Tools and Techniques - PowerPoint PPT Presentation

Citation preview

www.sparxsystems.com

Collaborative Modeling for Collaborative Modeling for Interoperability StandardsInteroperability Standards

Ben Constable

Chief Operations Officer

Sparx Systems

CIM Users Group Meeting, Genval 2009

www.sparxsystems.com

OverviewOverview

Collaborative Modeling

What does it involve?

Examples in Utilities, Geospatial and beyond…

Challenges, Tools and Techniques

Team-based modeling: What are the challenges?

Model sharing via Version Control

Reconciling changes to models (merging)

Q & A

Presentation by VIENNA team: B2B with UMM / EA

www.sparxsystems.com

Collaborative modeling and open Collaborative modeling and open standardsstandards

Interoperability standards typically:Use models and abstractions to:

Manage complexity – size and scope Communicate to widely distributed audiences Reduce risk of technology obsolescence

Use open modeling standards: Often OMG’s Unified Modeling Language (UML) For example IEC’s Common Information Model (CIM), OGC’s Reference Model (ORM)

Involve many collaborating stakeholders and editors Widely dispersed geographically Numerous and varied member organizations

www.sparxsystems.com

Collaborative modeling and open Collaborative modeling and open standardsstandards

Examples In IndustryInternational Electrotechnical Commission (IEC) CIM

ISO/TC 211 HMMG

JRC, INSPIRE

GeoSciML

UN/CEFACT’s Modeling Methodology (UMM)

Many others…

www.sparxsystems.com

What are other standards orgs doing with What are other standards orgs doing with Enterprise Architect?Enterprise Architect?

ISO/TC 211 Harmonized Model Maintenance Group (HMMG)

Maintenance of the ISO 19100 family of models

Standard meta models for Geospatial domain

Non-trivial size and scope (~240 Packages, 2K Elements)

HMMG adopted UML 2.1 and Enterprise Architect for modeling

Tool migration effort mirrors CIMug effort via XMI More info CIM User Group: http://cimug.ucaiug.org

UN/CEFACT’s UMM

Modeling standard for describing inter-organizational business process

More info: http://umm-dev.org/tools/uml-case-tools

www.sparxsystems.com

Development of GeoSciMLDevelopment of GeoSciML

GeoSciML – CGI’s application of GML for geoscience data

Interoperability: Platform-neutral publishing and interchange of geoscience data between organizations, systems, services etc.

Collaboration:UML meta-model:

https://www.seegrid.csiro.au/twiki/bin/view/CGIModel/WebHome

Case Study says distributed package management critical:

“…so that participants in different countries and time zones can concurrently work on the model.”

www.sparxsystems.com

OverviewOverview

Collaborative Modeling

What does it involve?

Examples in Utilities, Geospatial and beyond…

Challenges, Tools and Techniques

Team-based modeling: What are the challenges?

Model sharing via Version Control

Reconciling changes to models (merging)

Q & A

Presentation by VIENNA team: B2B with UMM / EA

www.sparxsystems.com

Team based modeling – the challengesTeam based modeling – the challenges

Widely distributed teams

Shared development of standards

Big models and wide scope

Change control, merging work, revisions etc

There are tools that help…

www.sparxsystems.com

Collaborative modeling toolsCollaborative modeling tools

Version Control

Model Baseline Merge

Shared (DBMS) Repositories

Role-based security

Model Auditing

www.sparxsystems.com

Versions in Enterprise Architect modelsVersions in Enterprise Architect models

Two Basic Approaches:1. Entire Model Repository: Simple, ‘coarse’, no concurrency

2. Package-based: Supports concurrent work

Package-Based Versions:Packages serialized as XMI (XML Metadata Interchange) file

1 Package Version = 1 XMI file

Applies to Root (Model), View, Parent or Child Packages

www.sparxsystems.com

Versions in Enterprise Architect modelsVersions in Enterprise Architect models

Enterprise Architect allows version comparisons:

Compare utility operates on Baseline vs Current State

Current State: The ‘live’ Package in the model repository

Baseline (snapshot): XMI-based version of the same package

www.sparxsystems.com

Versions in Enterprise Architect modelsVersions in Enterprise Architect models

Baseline may take one of these physical forms:

‘Model Baseline’ (Snapshot stored in the model)

XMI exported file (Snapshot exists on disk)

Version controlled Package (Snapshot in VC Repository)

www.sparxsystems.com

Version Controlled PackagesVersion Controlled Packages

Basic concepts of version control apply:A mechanism for managing concurrent work

Maintain a history of changes

Changes can be ‘rolled back’

Revisions stored in XMI formatNote: Default is XMI 1.1 (includes UML 2.1 info!)

www.sparxsystems.com

Version Control: What the user sees Version Control: What the user sees

Packages Checked-in (Locked)

Packages Checked-out (Editable)

www.sparxsystems.com

Version Control: Behind the scenes Version Control: Behind the scenes interfaces interfaces

Data Exchange Format: XMI (fi le based) Data Exchange Format: SQL

Enterprise Architect

Subv ersion Repository

CVS Repository CVS Client

Subv ersion Client

Model Repository

TFS Repository TFS Client

SCC Repository SCC Client

Version Control: Multiple Users, Local Version Control: Multiple Users, Local Models Models

Shared :Subv ersion Repository

USER 1 :Enterprise Architect USER 2 :Enterprise Architect USER N :Enterprise Architect

USER N :Model RepositoryUSER 2 :Model RepositoryUSER 1 :Model Repository

USER 1 :Subv ersion Client USER 2 :Subv ersion Client USER N :Subv ersion Client

. . .

XMI File

XMI File

«flow»

XMI File«flow»

XMI File«flow»

XMI File

«flow»

«flow» «flow» «flow»

Version Control: Multiple Users, Shared Version Control: Multiple Users, Shared Model Model Shared :Subv ersion Repository

USER 1 :Enterprise Architect USER 2 :Enterprise Architect USER N :Enterprise Architect

USER 1 :Subv ersion Client USER 2 :Subv ersion Client USER N :Subv ersion Client

. . .

XMI File

Shared :Model Repository

XMI File

«flow»

«flow»

XMI File

«flow»

XMI File«flow»

XMI File«flow»

www.sparxsystems.com

Model MergeModel Merge

When it’s needed:Concurrent work on a single package needs synchronization

Offline work needs to be ‘uploaded’

Selective roll-back of changes

Selective inclusion of changes (‘Phase based’ development)

Occurs at the package levelBetween versions of a package

1-way merge of Model Baseline to live Package

Baseline may exist in another model, file (eg. version control)

Requires same starting PackageThink version, not ad-hoc model merge

www.sparxsystems.com

Model MergeModel Merge

Scenario:

User A (Gatekeeper) maintains the baseline/master model

User B (Editor) supplies these changes to IEC 61970 Topology:

1. New Attribute added to existing TopologicalNode class2. New Class added and associated to TopologicalNode class3. Aggregation to Terminal class deleted (accident?!)4. Updated notes for attribute TopologicalNode. sShortCircuit

User A has two options:1. Overwrite Package IEC 61970 from User B – no work to do2. Review and selectively merge User B’s changes to IEC 61970

Option 2 required if User A has own changes

www.sparxsystems.com

User A: Original modelUser A: Original modelclass TopologicalNodeTerminal

IdentifiedObject

Core::Terminal

IdentifiedObject

TopologicalNode

+ energiz ed: Boolean [0..1]+ loadCarrying: Boolean [0..1]+ netInjectionP: ActivePower [0..1]+ netInjectionQ: ReactivePower [0..1]+ observabilityFlag: Boolean [0..1]+ phaseAngle: AngleRadians [0..1]+ voltage: Voltage [0..1]

«UCTE»+ r0PerR: Float [0..1]+ x0PerX: Float [0..1]+ xPerR: Float [0..1]+ sShortCircuit: ApparentPower [0..1]

IdentifiedObject

ConnectivityNode

PowerSystemResource

Core::ConnectivityNodeContainer

+Terminal 0..*

+TopologicalNode

0..1

+Terminals

0..*

+ConnectivityNode

0..1

+TopologicalNode

0..*

+ConnectivityNodeContainer

0..1

+ConnectivityNodes

0..*

+TopologicalNode

0..1

+ConnectivityNodes

0..*

+ConnectivityNodeContainer

1

www.sparxsystems.com

User B: Updated modelUser B: Updated modelclass TopologicalNodeTerminal

IdentifiedObject

TopologicalNode

+ energiz ed: Boolean [0..1]+ loadCarrying: Boolean [0..1]+ netInjectionP: ActivePower [0..1]+ netInjectionQ: ReactivePower [0..1]+ observabilityFlag: Boolean [0..1]+ phaseAngle: AngleRadians [0..1]+ voltage: Voltage [0..1]+ newAttribute: int

«UCTE»+ r0PerR: Float [0..1]+ x0PerX: Float [0..1]+ xPerR: Float [0..1]+ sShortCircuit: ApparentPower [0..1]

IdentifiedObject

ConnectivityNode

PowerSystemResource

Core::ConnectivityNodeContainer

NewClass

+ConnectivityNodes

0..*

+TopologicalNode

0..1

+ConnectivityNodes

0..*

+ConnectivityNodeContainer

1

+NewRole 1

+NewClass 1

+TopologicalNode

0..*

+ConnectivityNodeContainer

0..1

www.sparxsystems.com

Merge with XMI?Merge with XMI?

X

www.sparxsystems.com

Enterprise Architect Baseline MergeEnterprise Architect Baseline Merge

User AUser B

Enterprise Architect Baseline MergeEnterprise Architect Baseline Merge

class TopologicalNodeTerminal

IdentifiedObject

Core::Terminal

IdentifiedObject

TopologicalNode

+ energiz ed: Boolean [0..1]+ loadCarrying: Boolean [0..1]+ netInjectionP: ActivePower [0..1]+ netInjectionQ: ReactivePower [0..1]+ observabilityFlag: Boolean [0..1]+ phaseAngle: AngleRadians [0..1]+ voltage: Voltage [0..1]

«UCTE»+ r0PerR: Float [0..1]+ x0PerX: Float [0..1]+ xPerR: Float [0..1]+ sShortCircuit: ApparentPower [0..1]

IdentifiedObject

ConnectivityNode

PowerSystemResource

Core::ConnectivityNodeContainer

+Terminal 0..*

+TopologicalNode

0..1

+Terminals

0..*

+ConnectivityNode

0..1

+TopologicalNode

0..*

+ConnectivityNodeContainer

0..1

+ConnectivityNodes

0..*

+TopologicalNode

0..1

+ConnectivityNodes

0..*

+ConnectivityNodeContainer

1

class TopologicalNodeTerminal

IdentifiedObject

TopologicalNode

+ energiz ed: Boolean [0..1]+ loadCarrying: Boolean [0..1]+ netInjectionP: ActivePower [0..1]+ netInjectionQ: ReactivePower [0..1]+ observabilityFlag: Boolean [0..1]+ phaseAngle: AngleRadians [0..1]+ voltage: Voltage [0..1]+ newAttribute: int

«UCTE»+ r0PerR: Float [0..1]+ x0PerX: Float [0..1]+ xPerR: Float [0..1]+ sShortCircuit: ApparentPower [0..1]

IdentifiedObject

ConnectivityNode

PowerSystemResource

Core::ConnectivityNodeContainer

NewClass

+ConnectivityNodes

0..*

+TopologicalNode

0..1

+ConnectivityNodes

0..*

+ConnectivityNodeContainer

1

+NewRole 1

+NewClass 1

+TopologicalNode

0..*

+ConnectivityNodeContainer

0..1

+ User AUser B

class TopologicalNodeTerminal

IdentifiedObject

Core::Terminal

IdentifiedObject

TopologicalNode

+ energiz ed: Boolean [0..1]+ loadCarrying: Boolean [0..1]+ netInjectionP: ActivePower [0..1]+ netInjectionQ: ReactivePower [0..1]+ observabilityFlag: Boolean [0..1]+ phaseAngle: AngleRadians [0..1]+ voltage: Voltage [0..1]+ newAttribute: int

«UCTE»+ r0PerR: Float [0..1]+ x0PerX: Float [0..1]+ xPerR: Float [0..1]+ sShortCircuit: ApparentPower [0..1]

IdentifiedObject

ConnectivityNode

NewClass

PowerSystemResource

Core::ConnectivityNodeContainer

+Terminal 0..*

+TopologicalNode

0..1

+Terminals

0..*

+ConnectivityNode

0..1

+TopologicalNode

0..*

+ConnectivityNodeContainer

0..1

+NewRole 1

+NewClass 1

+ConnectivityNodes

0..*

+TopologicalNode

0..1

+ConnectivityNodes

0..*

+ConnectivityNodeContainer

1

www.sparxsystems.com

Shared RepositoriesShared Repositories

How DBMS repositories help:Concurrent users edit/view the same model instance

No need for synchronization

DBMS server can support large teams, large models

Host a single ‘Master View’

Requires some DB administration to setup

Commonly used for DBMS based repositories:

MySQL

MS SQL Server

Oracle

www.sparxsystems.com

Role-Based SecurityRole-Based Security

Shared models, concurrent editors …Access controls needed!

Individual user permissions

Group permission (Analysts/BAs, Architects, QA etc)

Role-based security:Require individuals or groups to login to the model repository

Restricted editing privileges based on role

Locking granularity: View, Package or Element level

Different locking/security modes available: “Require user lock to edit”, “Optional Lock”

Not to be confused with operating system or DBMS security!

www.sparxsystems.com

Model AuditingModel Auditing

Do we need to track model changes in real-time?

Large enterprises have strict governance rules

Changes to specifications can be expen$$$ive

Need to know: Who changed What and When

Model Auditing capability provides:A fine-grained change log for model elements

Change log is continuous vs ‘point-in-time snapshot’ (c/f version control baseline)

Filtering and highlighting of model differences

Accountability for model changes made over time

Exportable as a permanent record of change

www.sparxsystems.com

OverviewOverview

Collaborative Modeling

What does it involve?

Examples in Utilities, Geospatial and beyond…

Challenges, Tools and Techniques

Team-based modeling: What are the challenges?

Model sharing via Version Control

Reconciling changes to models (merging)

Q & A

Presentation by VIENNA team: B2B with UMM / EA

www.sparxsystems.com

OverviewOverview

Collaborative Modeling

What does it involve?

Examples in Utilities, Geospatial and beyond…

Challenges, Tools and Techniques

Team-based modeling: What are the challenges?

Model sharing via Version Control

Reconciling changes to models (merging)

Q & A

Presentation by VIENNA team: B2B with UMM / EA

thank you for your attention!