View
218
Download
0
Tags:
Embed Size (px)
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, Milan 2010
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
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 SDOs doing with Enterprise What are other SDOs doing with Enterprise Architect?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
Sample Real-World Global Model Sample Real-World Global Model DeploymentDeployment
The Organization:
A Leader in the Media & Communications domain
Develops large-scale, complex systems
Global company, > 10,000 employees, offices worldwide
The Models:
Globally Distributed: Europe, Asia, Middle East, North America
Requirements Scoping, High-Level and Detailed Design
Large-scale Model Driven Development
10,000’s of elements per model, > 100 concurrent users
www.sparxsystems.com
Sample Real-World Global Model Sample Real-World Global Model DeploymentDeployment
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
www.sparxsystems.com
Multi-site ModelsMulti-site Models
Why do we want to do this?
Globally distributed development teams
Require a shared view of the system(s) requirements
Increase productivity via parallel work
Inherent Challenges:
Connecting multiple teams to the shared view
Offline editing is often necessary
Models can be huge, performance must be managed
Disparate roles must collaborate remotely & harmoniously
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 concepts and Collaborative modeling concepts and toolstools
Shared (DBMS) Repository
Version Control
Model Baseline Merge
Role-based security
Model Auditing
www.sparxsystems.com
Multi-site Models – How?Multi-site Models – How?
Ideal Scenario: Single, Shared (Master) Repository
Site 2
Site 3Site 1
Site n
Assumes good connectivity between each site
www.sparxsystems.com
Multi-site Models – How?Multi-site Models – How?
Alternative Scenario: Local Replicas
Site 2
Site 3Site 1
Site n
Allows broad replication even across slow links
www.sparxsystems.com
Performance: Big models, complex infoPerformance: Big models, complex info
Enterprise Models can be HUGE!
End-to-end models can yield 100,000’s of Elements!
Need robust, scalable solutions…
www.sparxsystems.com
Performance: Big models, complex infoPerformance: Big models, complex info
Use a Database Repository
Robust modeling tools use a DBMS!
Load on Demand (‘Lazy Load’)
Only give me what I need when I need it!
Network optimization (‘WAN Optimizer’)
Widely distributed environment must reduce the network chatter
Getting teams connected is a first step, having them work effectively is another matter…
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
How to maximize parallel work How to maximize parallel work SAFELYSAFELY
Multiple distributed editors
Consider: Who uses the model?
For what purpose?
Approaches must:
Enable concurrency
Reduce risk of ‘collision’
Managing concurrent access
Role-based Security
Version Control procedures
www.sparxsystems.com
Access Controls
Restrict editing privileges per role
Individual user permissions
Group permission (Business Analysts, Architects, QA etc)
Refined Workflow
Require login to the model repository
Locking modes: “Require user lock to edit”, “Optional Lock”
Locking granularity: View, Package or Element level
Not to be confused with operating system or DBMS security!
Safe parallel work: Role-Based Safe parallel work: Role-Based SecuritySecurity
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
Benefits:
Supports concurrent work
Maintain history of changes
Compare current vs prior state
Roll-back changes
Package-Based Versions:
Stored using open standard for model exchange, XMI
Granularity: Down to Package (‘Folder’), Sub-Packages
Safe parallel work: Version ControlSafe parallel work: Version Control
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
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!)
More Info: http://www.sparxsystems.com/WhitePapers/Version_Control.pdf
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
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
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