1CIM User Group Conference Call december 8th 2005
Using UN/CEFACT Core Component methodology for EIC/TC 57 works and
CIM
Jean-Luc SANSON
Electrical Network Measurement and IT System Department
EDF R&D Division
2CIM User Group Conference Call december 8th 2005
Use Case
BalanceSupplier
(from BIE_ETSORoleMod...
Consumer
(from BIE_ETSORoleMod...
EndOfSupply
MeteringPointAdministrator
(from BIE_ETSORoleMod...
EndOfSupply_Audit
<<include>>
3CIM User Group Conference Call december 8th 2005
Sequence Diagram
: BalanceSupplier : MeteringPointAd...
EndSupplyRequest : Request Appointment Date
EndSupplyAcknowledgment : Admissibility and appointment time interval list
EndSupplyRequest : Chosen Appointment Time Interval
EndSupplyConfirmation : before the end of supply is effective
EndSupplyConfirmation : When the end of supply is effective
Phase 2 : appoitment scheduling :
If RECEIVABLE, the process can continue here
this Business Process shows how the balance supplier will request an appointment date for the end of supply
Phase 1 : admissibility
Phase 3 : end of process
4CIM User Group Conference Call december 8th 2005
Sequence Diagram
: BalanceSupplier : MeteringPointAd...
EndSupplyRequest : Request Appointment Date
EndSupplyAcknowledgment : Admissibility and appointment time interval list
EndSupplyRequest : Chosen Appointment Time Interval
EndSupplyConfirmation : before the end of supply is effective
EndSupplyConfirmation : When the end of supply is effective
Phase 2 : appoitment scheduling :
If RECEIVABLE, the process can continue here
this Business Process shows how the balance supplier will request an appointment date for the end of supply
Phase 1 : admissibility
Phase 3 : end of process
Messages andMessages’ Content
5CIM User Group Conference Call december 8th 2005
Question : how Message’s Content could be semantically consistant accross all exchanges?
The answer is to have a shared Information ModelFrom which Message Content could be derived
So first, what is an Information Model?How it could be represented?How we derived Message Content from this Information
Model?
8CIM User Group Conference Call december 8th 2005
Information Model
An Information Model is a model that represents all classes with : all their possible properties all their possible associations
This has some consequences : All properties are described as optional A lot of associations are left optional All associations are bidirectional ones (except for specialized ones
like inheritance and aggregation) This means that there is no hierarchy dataTyping is kept as generic as possible
An Information Model is context independant The CIM model is based on this philosophy
9CIM User Group Conference Call december 8th 2005
Information Model(Abstract Model)Business Class
ServiceLocation
serviceLocCode : StringserviceType : StringserviceLocStatus : StringestLoad : integerbillingCycle : StringloadMgmt : StringbudgetBill : StringoccupancyDate : AbsoluteDateaccessMethod : String
(from Location)
+ServiceLocation
0..n0..n
0..10..1
+ErpAddress
ErpAddress
streetNumber : StringstreetName : StringstreetSuffix : StringstreetPrefix : StringstreetType : StringpoBox : StringsuiteNumber : StringaddressGeneral : StringtownCode : Stringsection : Stringcity : StringstateOrProvince : Stringcountry : StringpostalCode : String
(from ERP_Support)
+ErpAddresses 0..n
0..n+ErpPersons 0..n
0..n
ErpPerson
lastName : StringfirstName : StringmName : StringspecialNeeds : StringgovernmentID : String
(from ERP_Support)
10CIM User Group Conference Call december 8th 2005
How can we generate a Message’s Content from an Information Model?
First define the context : use case, business process analysis…
At the end of this analysis, define exchanges as Messages that have Contents or Documents
Build Contents or Documents as follow : What are the classes involved in the exchange? What is the principal class involved in the exchange? What are the associations required What are the classes properties necessary for the exchange? What kind of constraints should be applied on the properties type?
In fact what is defined is a view on the information Model
11CIM User Group Conference Call december 8th 2005
1th step : select Classes involved in the exchange
ServiceLocation
serviceLocCode : StringserviceType : StringserviceLocStatus : StringestLoad : integerbillingCycle : StringloadMgmt : StringbudgetBill : StringoccupancyDate : AbsoluteDateaccessMethod : String
(from Location)
+ServiceLocation
0..n0..n 0..10..1
+ErpAddress
ErpAddress
streetNumber : StringstreetName : StringstreetSuffix : StringstreetPrefix : StringstreetType : StringpoBox : StringsuiteNumber : StringaddressGeneral : StringtownCode : Stringsection : Stringcity : StringstateOrProvince : Stringcountry : StringpostalCode : String
(from ERP_Support)
12CIM User Group Conference Call december 8th 2005
2th step : define main classes and relationsRoot Element
ServiceLocation
serviceLocCode : StringserviceType : StringserviceLocStatus : StringestLoad : integerbillingCycle : StringloadMgmt : StringbudgetBill : StringoccupancyDate : AbsoluteDateaccessMethod : String
(from Location)
1 11
ErpAddress
streetNumber : StringstreetName : StringstreetSuffix : StringstreetPrefix : StringstreetType : StringpoBox : StringsuiteNumber : StringaddressGeneral : StringtownCode : Stringsection : Stringcity : StringstateOrProvince : Stringcountry : StringpostalCode : String
(from ERP_Support)
13CIM User Group Conference Call december 8th 2005
3th step : select class properties involved in the exchange
ServiceLocation
serviceLocCode : StringserviceType : String
(from Location)
1 11
ErpAddress
streetNumber : StringstreetName : StringpostalCode : String
(from ERP_Support)
In fact we define views of information model classes
14CIM User Group Conference Call december 8th 2005
4th step : refine Properties DataTypes by restrictions (constraints)
ServiceLocation
serviceLocCode : String {8}serviceType : LocCodeEnum
(from Location)
1 1
ErpAdress
streetNumber : StringstreetName : StringpostalCode : PositiveInteger {5}
(from ERP_Support)
LocCodeEnum
PADTPDLPDC
<<enumeration>>
We ended up here with a Contextual Model
15CIM User Group Conference Call december 8th 2005
Define Message Model according to some assembly rules
Message Model levelAssembly Rules
ServiceLocation
serviceLocCode : String {8}serviceType : LocCodeEnumstreetNumber : StringstreetName : StringpostalCode : PositiveInteger {5}
(from Core2)
<<container>>
16CIM User Group Conference Call december 8th 2005
From Information
Model to Message Content Model
Message Content level
Information levelServiceLocation
serviceLocCode : StringserviceType : StringserviceLocStatus : StringestLoad : integerbillingCycle : StringloadMgmt : StringbudgetBill : StringoccupancyDate : AbsoluteDateaccessMethod : String
(from Location)
0..n0..n 0..1
+ServiceLocation
+ErpAddress
0..1
ErpAddress
streetNumber : StringstreetName : StringstreetSuffix : StringstreetPrefix : StringstreetType : StringpoBox : StringsuiteNumber : StringaddressGeneral : StringtownCode : Stringsection : Stringcity : StringstateOrProvince : Stringcountry : StringpostalCode : String
(from ERP_Support)
+ErpAddresses0..n
0..n+ErpPersons
ErpPerson
lastName : StringfirstName : StringmName : StringspecialNeeds : StringgovernmentID : String
(from ERP_Support)
ServiceLocation
serviceLocCode : String {8}serviceType : LocCodeEnum
(from Location)
1 1
ErpAdress
streetNumber : StringstreetName : StringpostalCode : PositiveInteger {5}
(from ERP_Support)
ServiceLocation
serviceLocCode : String {8}serviceType : LocCodeEnumstreetNumber : StringstreetName : StringpostalCode : PositiveInteger {5}
(from Core2)
<<container>>
17CIM User Group Conference Call december 8th 2005
Next step from Message Content Model to Message Content Syntactic Model
Syntactic level= XML Schema
Transformation Process
According to some Rules
<?xml version="1.0" encoding="UTF-8"?><xsd:element name=« ServiceLocation"><xsd:sequence> <xsd:element name=« serviceLocCode »/> <xsd:element name=« serviceType »/> <xsd:element name=« streetNumber »/> <xsd:element name=« streetName »/>
<xsd:element name=« postalCode »/> </xsd:sequence>
Message Content level
ServiceLocation
serviceLocCode : String {8}serviceType : LocCodeEnumstreetNumber : StringstreetName : StringpostalCode : PositiveInteger {5}
(from Core2)
<<container>>
18CIM User Group Conference Call december 8th 2005
UML/XMLModelling layers
Information ModelUML
Modèles ConceptuelsUML
Modèles d’EchangesUML
Modèle d’EchangeXML (XSD)
Modèles ConceptuelsUMLContextual Models
UML
Modèles d’EchangesUMLMessage Content
Models UML
Modèle d’EchangeXML (XSD)Message ContentXML Schemas
19CIM User Group Conference Call december 8th 2005
UN/CEFACT
“UN Centre for Trade Facilitation and Electronic Business supports activities dedicated to improving the ability of business, trade and administrative organizations, from developed, developing and transitional economies, to exchange products and relevant services effectively.”
Cross-sectoral analysis (to promote interoperability & supply chain synchronicity)
Business process and information modelling (to capture user requirements, independent of any specific technology, through the creation of business collaboration models); and
New technologies as they emerge (eg eXtensible Markup language (XML), webServices, shared and/or distributed objects etc)
International standards for enabling e-business systems & interoperability
20CIM User Group Conference Call december 8th 2005
UN/CEFACT External Relations
Memorandum of Understanding - ISO, IEC, ITU, UNECE Meetings in Beijing in October 2005 and in Vancouver in March
2006.
UN/CEFACT - OASIS A new Cooperation Agreement was signed on 21 June 2005. ebXML, UBL
Many other organizations Some are delegations in UN/CEFACT
–GS1, SWIFT, … Some are not
–OAG, CEN/ISSS, XBRL, …
21CIM User Group Conference Call december 8th 2005
Core ComponentsUML
Business Information EntitiesUML
Message Content ModelsUML
Message ContentXML Schemas
UN/CefactCore Component
TechnicalSpecification
22CIM User Group Conference Call december 8th 2005
Core Component and Business Information Entity
ServiceLocation
serviceLocCode : StringserviceType : StringserviceLocStatus : StringestLoad : integerbillingCycle : StringloadMgmt : StringbudgetBill : StringoccupancyDate : AbsoluteDateaccessMethod : String
(from Location)
<<Core Component>>
<<isBasedOn>>
Cus_ServiceLocationserviceLocCode : String {8}serviceType : LocCodeEnum
<<Business Information Entity>>
Bill_ServiceLocation
serviceLocCode : StringbillingCycle : BillingCycleEnumbudgetBill : StringoccupancyDate : AbsoluteDate
<<Business Information Entity>>
<<isBasedOn>>
23CIM User Group Conference Call december 8th 2005
DataTypes and Core Component Types
Ten Core Component Types:AmountBinary ObjectCodeDate Identifier IndicatorNumericMeasureQuantityText
From which can be derived DataTypes
24CIM User Group Conference Call december 8th 2005
Core Component Types
Have a content that is of a primitive type (String, Decimal…)
And Supplementary attributes that qualify the ContentExample Core Component Type « Amount » have
A Content whose value is a decimal And Supplementary Attributes :
– Currency Identifier– Currency Code List Version
Example Core Component Type « Measure » have A Content whose value is a decimal And Supplementary Attributes :
– Unit Code– Unit Code List Version
CIm is using something similar for its Domain « Primitive »
25CIM User Group Conference Call december 8th 2005
Core Component Types
Measure
content = DecimalunitCode = StringcodeListVersion : String
Amount
content : DecimalcurrencyCode : StringcodeListVersion : String
Quantity
content : decimalunitCode : StringcodeListID : StringcodeListeAgencyID : StringcodeListAgencyName : String
Three of them are dealingwith measuring, compting Objects : Measure : for measure value Amount : monnetary representation Quantity : for anything else
Measure Units are based on UN/ECE rec. 20Currency Units are based on UN/ECE rec. 9Quantity Unit are user defined
Measure, amount and quantity value areAll expressed as decimal values
26CIM User Group Conference Call december 8th 2005
Measure
Definition a numeric value determined by measuring an object along with the specified
unit of measure Measure.Content
decimal The numeric value determined by measuring an object.
Measure Unit.Code string The type of unit of measure Reference UN/ECE Rec. 20 and X12 355, that
include SI units.
27CIM User Group Conference Call december 8th 2005
Creating DataTypes by derivation
Voltage_Measure
content : decimalunitCode : String = "V"
Measure
content = DecimalunitCode = StringcodeListVersion : String Voltage_Measure
content : decimalunitCode : String = "V"
kiloVoltage_Measure
content : decimalunitCode : String = "kV"
Default value
Fixed value
Fixed valueThere are naming rules that say that a derived by restrictiondataTypes have a name based on the CCT name prefixed by a qualifier
And for multiple ans sub units?
Comment : CIM DataTyping need to be revised and a naming rule should be definedMeasure Class name should be based on quantity name (example voltage) and the unit expressed by the SI representation symbol (example V)
28CIM User Group Conference Call december 8th 2005
Creating controlled dataTypes
Measure
content = DecimalunitCode = StringcodeListVersion : String
Voltage_Measure
content : decimalunitCode : SIVoltageKind = "V"SIVoltageKind
kVVmV
<<enumeration>>
Voltage_Measure
content : decimalunitCode : SIVoltageKind = "V"
Voltage_Measure
content : decimalunitCode : SIVoltageKind
kiloVoltage_Measure
content : decimalunitCode : SIVoltageKind = "kV"
Use of enumeration to give only permitted unit value
29CIM User Group Conference Call december 8th 2005
Core ComponentsUML
Business Information EntitiesUML
Message Content ModelsUML
Message ContentXML Schemas
Context Constraint Language
Message Assembly
XML naming andDesign rules
Syntax Binding
30CIM User Group Conference Call december 8th 2005
CIM/XML SchemaDerivationProcess
CIM Information ModelUML
Contextual Model
Message ContentXML Schema
Message ContentModel
CIM Context rules ?
CIM Message assembly
Rules ?
CIM XML Schema Design Rules ?
CIM Syntax Binding ?
31CIM User Group Conference Call december 8th 2005
Proposals
CIM Context Constraint Rules?CIM Message Assembly Rules?CIM Syntax Binding ? (RDF)CIM Naming and Design Rules? We need to have all these rules explicitly described in
the 61968 and 61970 standards (and serves for WG 16 and 19)
One way to do that is to based this work on the UN/Cefact work
This would also be aligned with the Memorandum Of Understandind between UN/Cefact and IEC.
32CIM User Group Conference Call december 8th 2005
Aligne CIM and IEC Standards with UN/Cefact Work
What would be the work?For CIM :
Change all domain package to have UN/Cefact CCTS DataTypes And move to SI Units Naming Rules for DataTypes Use Decimal instead of Float Change all attributes types in CIM Classes Make good definitions
33CIM User Group Conference Call december 8th 2005
NamingaliasName : Textdescription : Textname : TextpathName : Text
Naming
aliasName : Stringdescription : Stringname : StringpathName : String
CIM CIM UN/Cefact
Text
content : Stringlanguage : StringlocalLanguage : String
<<Core Component Type>>
Core component Type
34CIM User Group Conference Call december 8th 2005
AssetModel
number : Stringversion : StringcorpStandard : Stringusage : StringweightTotal : weight
AssetModel
number : Identifierversion : IdentifiercorpStandard : Textusage : TextweightTotal : Weight
CIM CIM UN/Cefact
35CIM User Group Conference Call december 8th 2005
AssetModel
number : Stringversion : StringcorpStandard : Stringusage : StringweightTotal : weight
AssetModel
number : Identifierversion : IdentifiercorpStandard : Textusage : TextweightTotal : Weight
CIM CIM UN/Cefact
Core component Type
DataTypeweight
value : Floatunits : String = "Kilograms"
<<Primitive>>Weigth
content : DecimalunitCode : String = "Kg"
<<Core Component Type>>
Identifiercontent : StringschemeIdentifier : stringschemeName : StringschemeVersion : StringschemeURI : StringagencyIdentifier : StringagencyName : StringschemeData : String
<<Core Component Type>>