Collaborative Modeling for Interoperability Standards

Shared by: hcj
Categories
Tags
-
Stats
views:
2
posted:
4/15/2012
language:
English
pages:
39
Document Sample
scope of work template
							Collaborative Modeling for
Interoperability Standards

Ben Constable
Chief Operations Officer
Sparx Systems




CIM Users Group Meeting, Milan 2010
                         www.sparxsystems.com
Overview
  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
standards
   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
standards
   Examples In Industry
     International 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
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 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/WebH
     ome
     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
Deployment
  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
Deployment




              www.sparxsystems.com
Overview
  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 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 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
tools
   Shared (DBMS) Repository


   Version Control


   Model Baseline Merge


   Role-based security


   Model Auditing

                     www.sparxsystems.com
Multi-site Models – How?
  Ideal Scenario: Single, Shared (Master) Repository




    Site 1
                                           Site 3




    Site 2                                  Site n



  Assumes good connectivity between each site


                    www.sparxsystems.com
Multi-site Models – How?
  Alternative Scenario: Local Replicas




    Site 1
                                            Site 3




    Site 2                                   Site n



   Allows broad replication even across slow links


                     www.sparxsystems.com
Performance: 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 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 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 SAFELY

 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
Safe parallel work: Role-Based Security

  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!



                          www.sparxsystems.com
Role-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
Safe parallel work: Version Control

  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




                        www.sparxsystems.com
Version Control: What the user sees

Packages Checked-in
   (Locked)




 Packages Checked-out
    (Editable)




                        www.sparxsystems.com
Versions 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 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 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 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 format
     Note: 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
interfaces

           Data Exchange Format: XMI (file based)                                          Data Exchange Format: SQL




 Subv ersion                      Subv ersion
  Repositor y                       Client
                                                                    Enterprise Architect

TFS Repository
                                    TFS Client

                                                                                                  Model Repository


CV S Repository                    CV S Client




SCC Repositor y
                                   SCC Client




                                                    www.sparxsystems.com
Version Control: Multiple Users, Local
Models
Version Control: Multiple Users, Shared
Model
Model 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 level
    Between 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 Package
    Think version, not ad-hoc model merge
                     www.sparxsystems.com
Model 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 class
        2.   New Class added and associated to TopologicalNode class
        3.   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 do
        2. 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 model
   class T opologicalNodeT erminal


                  I dent ifiedObject   +Connectiv ity Node                               +Terminals
                ConnectivityNode                                                                    I dent ifiedObject
                                       0..1                                                    0..* Core: : T erminal

                                                                                                  +Terminal     0..*
                                       +Connectiv ity Nodes

                                       0..*
                           0..*
               +Connectiv ity Nodes


                                                                              +TopologicalNode        +TopologicalNode

                                                                                  0..1                   0..1


                                                                                                          I dent ifiedObject
                                                                                              T opologicalNode

                                                                                  + energiz ed: Boolean [0..1]
                                                                                  + loadCarry ing: Boolean [0..1]
                                                                +TopologicalNode + netInjectionP: Activ ePow er [0..1]
           +Connectiv ity NodeContainer                                           + netInjectionQ: Reactiv ePow er [0..1]
                                                                             0..*
                            1                                                     + observ ability Flag: Boolean [0..1]
                                                                                  + phaseAngle: AngleRadians [0..1]
                     PowerSy st emResource
                                           +Connectiv ity NodeContainer           + v oltage: Voltage [0..1]
        Core: : ConnectivityNodeContainer
                                                                                  «UCTE»
                                           0..1
                                                                                  + r0PerR: Float [0..1]
                                                                                  + x0PerX: Float [0..1]
                                                                                  + xPerR: Float [0..1]
                                                                                  + sShortCircuit: ApparentPow er [0..1]




                                                  www.sparxsystems.com
User B: Updated model
      class T opologicalNodeT erminal


                     I dent ifiedObject
                   ConnectivityNode




                                          +Connectiv ity Nodes

                                          0..*
                              0..*
                  +Connectiv ity Nodes


                                                                                 +TopologicalNode
                                                                                     0..1


                                                                                                            I dent ifiedObject
                                                                                                T opologicalNode

                                                                                     + energiz ed: Boolean [0..1]
                                                                                     + loadCarry ing: Boolean [0..1]
                                                                   +TopologicalNode + netInjectionP: Activ ePow er [0..1]
              +Connectiv ity NodeContainer                                           + netInjectionQ: Reactiv ePow er [0..1]
                                                                                0..*
                               1                                                     + observ ability Flag: Boolean [0..1]
                                                                                     + phaseAngle: AngleRadians [0..1]
                        PowerSy st emResource
                                              +Connectiv ity NodeContainer           + v oltage: Voltage [0..1]
           Core: : ConnectivityNodeContainer
                                                                                     + new Attribute: int
                                              0..1
                                                                                     «UCTE»
                                                                                     + r0PerR: Float [0..1]
                                                                                     + x0PerX: Float [0..1]
                                                                                     + xPerR: Float [0..1]
                                                                                     + sShortCircuit: ApparentPow er [0..1]

                                                                                              +New Role    1


                                                                                             +New Class    1


                                                                                                    New Class




                                                 www.sparxsystems.com
Merge with XMI?




  www.sparxsystems.com
Enterprise Architect Baseline Merge




                                User B   User A




                www.sparxsystems.com
     Enterprise Architect Baseline Merge
                                           class T opologicalNodeT erminal


                                                               I dent ifiedObject     +Connectiv ity Node                                                +Terminals
                                                           ConnectivityNode                                                                                                  I dent ifiedObject
                                                                                      0..1                                                                           0..* Core: : T erminal
class T opologicalNodeT erminal
                                                                                                                                                                            +Terminal       0..*
                                                                                      +Connectiv ity Nodes
               I dent ifiedObject                                                                                                class T opologicalNodeT erminal
             ConnectivityNode
                                                                                      0..*
                                                                        0..*                                                                    I dent ifiedObject   +Connectiv ity Node                             +Terminals
                                                                                                                                              ConnectivityNode                                                                    I dent ifiedObject
                                                           +Connectiv ity Nodes




                                                                                                           +
                                    +Connectiv ity Nodes                                                                                                             0..1                                                    0..* Core: : T erminal
                                                                                                                                            +TopologicalNode                  +TopologicalNode
                                    0..*                                                                                                                                                                                        +Terminal     0..*
                        0..*
                                                                                                                                                                                    Nodes
                                                                                                                                                                     +Connectiv ity 0..1
            +Connectiv ity Nodes                                                                                                                 0..1
                                                                                                                                                                     0..*
                                                                                                                                                         0..*
                                                                           +TopologicalNode                                                  +Connectiv ity Nodes
                                                                                                                                                                                      I dent ifiedObject
                                                                               0..1
                                                                                                                                                                     T opologicalNode


                                                 User B                                                                                                                            User A
                                                                                                                                                                                                           +TopologicalNode        +TopologicalNode
                                                                                                      I dent ifiedObject                                                                                      0..1                     0..1
                                                                                          T opologicalNode                                      + energiz ed: Boolean [0..1]
                                                                                                                                                + loadCarry ing: Boolean [0..1]
                                                                                 + energiz ed: Boolean [0..1]                                                                                                                          I dent ifiedObject
                                                                                                                         +TopologicalNode + netInjectionP: Activ ePow er [0..1]                                            T opologicalNode
                                                                                 + loadCarry ing: Boolean [0..1]
                                                      +Connectiv ity NodeContainer
                                                                +TopologicalNode + netInjectionP: Activ ePow er [0..1]                          + netInjectionQ: Reactiv ePow er [0..1]
        +Connectiv ity NodeContainer                                                                                                      0..*                                                                 +     energiz ed: Boolean [0..1]
                                                                          1 0..* + netInjectionQ: Reactiv ePow er [0..1]                        + observ ability Flag: Boolean [0..1]                          +     loadCarry ing: Boolean [0..1]
                        1                                                        + observ ability Flag: Boolean [0..1]
                                                                                                                                                                                          +TopologicalNode
                                                                                 + phaseAngle: AngleRadians [0..1]                              + phaseAngle: AngleRadians [0..1]                              +     netInjectionP: Activ ePow er [0..1]
                  PowerSy st emResource                           PowerSy st emResource Voltage [0..1]                               +Connectiv ity NodeContainer                                              +     netInjectionQ: Reactiv ePow er [0..1]
     Core: : ConnectivityNodeContainer
                                           +Connectiv ity NodeContainer          + v oltage:    +Connectiv ity NodeContainer                    + v oltage: Voltage [0..1]
                                                                                                                                                      1
                                                                                                                                                                                                       0..*
                                                                                                                                                                                                               +     observ ability Flag: Boolean [0..1]
                                                Core: : ConnectivityNodeContainer+ new Attribute: int
                                           0..1                                                                                                 + new Attribute: int                                           +     phaseAngle: AngleRadians [0..1]
                                                                                 «UCTE»                                                        PowerSy st emResource
                                                                                               0..1                                                                  +Connectiv ity NodeContainer              +     v oltage: Voltage [0..1]
                                                                                 + r0PerR: Float [0..1]                                         «UCTE»
                                                                                                                                  Core: : ConnectivityNodeContainer
                                                                                                                                                                                                               «UCTE»
                                                                                 + x0PerX: Float [0..1]                                                              0..1
                                                                                 + xPerR: Float [0..1]
                                                                                                                                                + r0PerR: Float [0..1]                                         + r0PerR: Float [0..1]
                                                                                 + sShortCircuit: ApparentPow er [0..1]                         + x0PerX: Float [0..1]                                         + x0PerX: Float [0..1]
                                                                                                                                                                                                               + xPerR: Float [0..1]
                                                                                        +New Role 1                                             + xPerR: Float [0..1]                                          + sShortCircuit: ApparentPow er [0..1]
                                                                                                                                                + sShortCircuit: ApparentPow er [0..1]
                                                                                       +New Class    1
                                                                                                                                                                 +New Role        1
                                                                                              New Class


                                                                                                                                                                +New Class        1


                                                                                                                                                                            New Class
Model 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
                     Overview
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
thank you for your attention!

						
Other docs by hcj