03.05.2014 Views

DFDL 1.0 – Specification and Implementation ... - Open Grid Forum

DFDL 1.0 – Specification and Implementation ... - Open Grid Forum

DFDL 1.0 – Specification and Implementation ... - Open Grid Forum

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>DFDL</strong> <strong>1.0</strong> – <strong>Specification</strong> <strong>and</strong><br />

<strong>Implementation</strong> Update<br />

Steve Hanson, smh@uk.ibm.com 12 March, 2012<br />

© 2006 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong>


OGF IPR Policies Apply<br />

“I acknowledge that participation in this meeting is subject to the OGF Intellectual Property<br />

Policy.”<br />

Intellectual Property Notices Note Well: All statements related to the activities of the OGF<br />

<strong>and</strong> addressed to the OGF are subject to all provisions of Appendix B of GFD-C.1, which<br />

grants to the OGF <strong>and</strong> its participants certain licenses <strong>and</strong> rights in such statements. Such<br />

statements include verbal statements in OGF meetings, as well as written <strong>and</strong> electronic<br />

communications made at any time or place, which are addressed to:<br />

• the OGF plenary session,<br />

• any OGF working group or portion thereof,<br />

• the OGF Board of Directors, the GFSG, or any member thereof on behalf of the OGF,<br />

• the ADCOM, or any member thereof on behalf of the ADCOM,<br />

• any OGF mailing list, including any group list, or any other list functioning under<br />

OGF auspices,<br />

• the OGF Editor or the document authoring <strong>and</strong> review process<br />

Statements made outside of a OGF meeting, mailing list or other function, that are clearly<br />

not intended to be input to an OGF activity, group or function, are not subject to these<br />

provisions.<br />

Excerpt from Appendix B of GFD-C.1: ”Where the OGF knows of rights, or claimed rights, the<br />

OGF secretariat shall attempt to obtain from the claimant of such rights, a written assurance<br />

that upon approval by the GFSG of the relevant OGF document(s), any party will be able to<br />

obtain the right to implement, use <strong>and</strong> distribute the technology or works when<br />

implementing, using or distributing technology based upon the specific specification(s) under<br />

openly specified, reasonable, non-discriminatory terms. The working group or research group<br />

proposing the use of the technology with respect to which the proprietary rights are claimed<br />

may assist the OGF secretariat in this effort. The results of this procedure shall not affect<br />

advancement of document, except that the GFSG may defer approval where a delay may<br />

facilitate the obtaining of such assurances. The results will, however, be recorded by the OGF<br />

Secretariat, <strong>and</strong> made available. The GFSG may also direct that a summary of the results be<br />

included in any GFD published containing the specification.”<br />

OGF Intellectual Property Policies are adapted from the IETF Intellectual Property Policies<br />

that support the Internet St<strong>and</strong>ards Process.<br />

2 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

2<br />

www.ogf.org


Full Copyright Notice<br />

Copyright (C) <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong> (2004, 2012). All Rights Reserved.<br />

This document <strong>and</strong> translations of it may be copied <strong>and</strong> furnished to<br />

others, <strong>and</strong> derivative works that comment on or otherwise explain it or<br />

assist in its implementation may be prepared, copied, published <strong>and</strong><br />

distributed, in whole or in part, without restriction of any kind, provided<br />

that the above copyright notice <strong>and</strong> this paragraph are included on all<br />

such copies <strong>and</strong> derivative works.<br />

The limited permissions granted above are perpetual <strong>and</strong> will not be<br />

revoked by the OGF or its successors or assignees.<br />

3 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

3<br />

www.ogf.org


Admin<br />

<br />

<br />

<strong>DFDL</strong> WG co-chairs:<br />

– Steve Hanson, IBM UK<br />

– Mike Beckerle<br />

Two note takers please<br />

<br />

Sign the attendance sheet<br />

<br />

Note: OGF Intellectual Property Rules apply<br />

4 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

4<br />

www.ogf.org


Agenda<br />

<strong>DFDL</strong> Language Overview<br />

<strong>Specification</strong> Update<br />

IBM <strong>DFDL</strong> <strong>1.0</strong><br />

<strong>Open</strong> source Daffodil<br />

Demo of IBM <strong>DFDL</strong><br />

Next steps<br />

5 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


Why <strong>DFDL</strong>?<br />

<br />

<br />

<br />

<strong>Grid</strong>s <strong>and</strong> clouds are about universal data interchange<br />

But there is no universal st<strong>and</strong>ard for modeling general text <strong>and</strong> binary data<br />

– XML -> use XML Schema<br />

– RDBMS -> use database schema<br />

– Other text/binary -> ??<br />

Existing st<strong>and</strong>ards are not flexible enough<br />

– Prescriptive: “Put your data in this format!”<br />

– Examples: ASN.1, XDR, GPB, Thrift, Avro, …<br />

– You must use one of the defined encodings & syntax<br />

<strong>DFDL</strong>: a universal, shareable, non-prescriptive, description for general<br />

text & binary data formats<br />

6 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


Data Format Description Language (<strong>DFDL</strong>)<br />

Version <strong>1.0</strong><br />

– Proposed Recommendation status<br />

A way of describing data…<br />

– It is NOT a data format itself!<br />

That can describe any data format …<br />

– Textual <strong>and</strong> binary<br />

– Commercial record-oriented<br />

– Scientific <strong>and</strong> numeric<br />

– Modern <strong>and</strong> legacy<br />

– Industry st<strong>and</strong>ards<br />

While allowing high performance …<br />

– Choose the right data format for the<br />

job<br />

Leverage XML technology <strong>and</strong> concepts<br />

– Use W3C XML Schema subset & type<br />

system to describe the logical format of<br />

the data<br />

– Use annotations within the XSD to<br />

describe the physical representation of<br />

the data<br />

– Use XPath when referencing fields within<br />

the data<br />

Support round-tripping<br />

– Read <strong>and</strong> write data in described format<br />

from same description<br />

Keep simple cases simple<br />

– Simple descriptions should be human<br />

readable<br />

7 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


Example – Delimited text data<br />

Initiator<br />

Separator<br />

Initiator<br />

intval=5;fltval=-7.1E8<br />

ASCII text<br />

integer<br />

ASCII text floating<br />

point<br />

Separators, initiators (aka tags), & terminators are all examples in <strong>DFDL</strong> of delimiters<br />

8 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


Example – <strong>DFDL</strong> schema<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<strong>DFDL</strong><br />

<strong>DFDL</strong><br />

properties<br />

<br />

annotation<br />

;<br />

int=5<br />

float=-7.1E8<br />

9 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


Example – <strong>DFDL</strong> schema (short form)<br />


<strong>DFDL</strong> features<br />

Language structures such as COBOL, C <strong>and</strong> PL/1<br />

Industry st<strong>and</strong>ards such as SWIFT, HL7, FIX, HIPAA, X12, EDIFACT, ISO8583<br />

Fixed data <strong>and</strong> data delimited by text or binary markup<br />

Text data types such as strings, numbers, zoned decimals, calendars, booleans<br />

Binary data types such as integers, floats, BCD, packed decimal, calendars, booleans<br />

Bi-directional text<br />

Bit data of arbitrary length<br />

Pattern languages for text numbers <strong>and</strong> calendars<br />

Ordered, unordered <strong>and</strong> floating content<br />

Default values on parsing <strong>and</strong> serializing<br />

Nil values for h<strong>and</strong>ling out-of-b<strong>and</strong> data<br />

XPath 2.0 expression language including variables to model dynamic data<br />

Speculative parsing to resolve choices <strong>and</strong> optional content<br />

Fixed <strong>and</strong> variable arrays<br />

Hide elements in the data<br />

Calculate element values<br />

Validation to XML Schema <strong>1.0</strong> rules<br />

Scoping mechanism to allow common property values to be applied at multiple points<br />

11 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


XML Schema subset<br />

element<br />

type<br />

*<br />

*<br />

group<br />

complexType<br />

simpleType<br />

sequence<br />

choice<br />

<strong>DFDL</strong> properties are placed on yellow objects only<br />

12 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


Supported Simple Types<br />

anySimpleType<br />

string QName NOTATION float double decimal boolean base64Binary hexBinary anyURI<br />

normalizedString<br />

integer<br />

token<br />

long nonPositiveInteger nonNegativeInteger<br />

language Name NMTOKEN<br />

int<br />

negativeInteger positiveInteger unsignedLong<br />

NCName<br />

NMTOKENS<br />

short<br />

unsignedInt<br />

ID IDREF ENTITY<br />

byte<br />

unsignedShort<br />

IDREFS<br />

ENTITIES<br />

unsignedByte<br />

date time dateTime gYear gYearMonth gMonth gMonthDay gDay duration<br />

13 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

13<br />

www.ogf.org


<strong>DFDL</strong> language – basic annotations<br />

Annotation<br />

Used on Component<br />

Purpose<br />

dfdl:element<br />

dfdl:choice<br />

xs:element<br />

xs:element reference<br />

xs:choice<br />

Contains the <strong>DFDL</strong> properties of an xs:element <strong>and</strong> xs:element<br />

reference<br />

Contains the <strong>DFDL</strong> properties of an xs:choice.<br />

dfdl:sequence<br />

xs:sequence<br />

Contains the <strong>DFDL</strong> properties of an xs:sequence.<br />

dfdl:group<br />

dfdl:simpleType<br />

xs:group reference<br />

xs:simpleType<br />

Contains the <strong>DFDL</strong> properties of an xs:group reference to a group<br />

definition containing an xs:sequence or xs:choice.<br />

Contains the <strong>DFDL</strong> properties of an xs:simpleType<br />

dfdl:format<br />

dfdl:defineFormat<br />

xs:schema<br />

dfdl:defineFormat<br />

xs:schema<br />

Contains a set of <strong>DFDL</strong> properties that can be used by multiple<br />

<strong>DFDL</strong> schema components. When used directly on xs:schema,<br />

the property values act as defaults for all components in the<br />

<strong>DFDL</strong> schema.<br />

Defines a reusable data format by associating a name with a set<br />

of <strong>DFDL</strong> properties contained within a child dfdl:format<br />

annotation. The name can be referenced from <strong>DFDL</strong> annotations<br />

on multiple <strong>DFDL</strong> schema components, using dfdl:ref.<br />

14 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


<strong>DFDL</strong> language – advanced annotations<br />

Annotation<br />

Used on Component<br />

Purpose<br />

dfdl:assert<br />

dfdl:discriminator<br />

dfdl:escapeScheme<br />

dfdl:defineEscapeScheme<br />

dfdl:hidden<br />

xs:element, xs:choice<br />

xs:sequence, xs:group<br />

xs:element, xs:choice<br />

xs:sequence, xs:group<br />

dfdl:defineEscapeScheme<br />

xs:schema<br />

xs:sequence<br />

Defines a test to be used to ensure the data are well formed.<br />

Used only when parsing data.<br />

Defines a test to be used when resolving a point of<br />

uncertainty such as choice branches or optional elements.<br />

Used only when parsing.<br />

Defines a scheme by which quotation marks <strong>and</strong> escape<br />

characters can be specified. This is for use with delimited<br />

text formats.<br />

Defines a named, reusable escape scheme. The name can<br />

be referenced from <strong>DFDL</strong> annotations on multiple <strong>DFDL</strong><br />

schema components.<br />

Defines a hidden element that appears in the schema for use<br />

by the <strong>DFDL</strong> processor, but is not part of the infoset.<br />

dfdl:defineVariable<br />

dfdl:newVariableInstance<br />

dfdl:setVariable<br />

xs:schema<br />

xs:element, xs:choice<br />

xs:sequence, xs:group<br />

xs:element, xs:choice<br />

xs:sequence, xs:group<br />

Defines a variable that can be referenced elsewhere. This<br />

can be used to communicate a parameter from one part of<br />

processing to another part.<br />

Creates a new instance of a variable<br />

Sets the value of a variable whose declaration is in scope<br />

15 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


<strong>DFDL</strong> Information Set<br />

An abstract data set defining the content that must be provided<br />

- To an application by a <strong>DFDL</strong> Parser<br />

- To a <strong>DFDL</strong> Unparser by an application<br />

Same concept as XML Data Model (XDM)<br />

16 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

16<br />

www.ogf.org


Speculative parsing<br />

<br />

<br />

<br />

<br />

<br />

<br />

The <strong>DFDL</strong> parser is a recursive-descent parser with look-ahead used to<br />

resolve points of uncertainty:<br />

– A choice<br />

– An optional element<br />

– A variable array of elements<br />

Put another way, the <strong>DFDL</strong> parser speculatively attempts to parse data<br />

until an object is either ‘known to exist’ or ‘known not to exist’<br />

Until that applies, the occurrence of a processing error causes the parser<br />

to suppress the error, back track <strong>and</strong> make another attempt<br />

Example: The parser tries the 1st branch of a choice, but gets a<br />

processing error. It back tracks <strong>and</strong> tries the 2 nd branch, which succeeds<br />

The dfdl:discriminator annotation can be used to assert that an object is<br />

‘known to exist’, which prevents incorrect back tracking<br />

The presence of an initiator (tag) is also able to assert ‘known to exist’<br />

17 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


Setting defaults for <strong>DFDL</strong> properties<br />

In the <strong>DFDL</strong> language, <strong>DFDL</strong> properties do not have built-in defaults<br />

This is a deliberate design decision to avoid behavioural differences when<br />

switching platforms <strong>and</strong> locales<br />

If an object needs a property, a value must be explicitly supplied for the property<br />

1.You can set the property locally on the object itself<br />

2.You can set the property in the schema’s special dfdl:format annotation, where it<br />

acts as a default for all objects in the schema<br />

3.You can set the property on a dfdl:format annotation within a named, shareable<br />

dfdl:defineFormat annotation, <strong>and</strong> reference the dfdl:defineFormat using the<br />

special dfdl:ref property<br />

The dfdl:ref property can also be used on dfdl:format, enabling inheritance chaining<br />

In <strong>DFDL</strong>, using dfdl:format to set property defaults in this way is called scoping<br />

18 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


An example of <strong>DFDL</strong> scoping<br />

a:xxx,b:yyy,c:zzz<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Property<br />

set locally<br />

<br />

<br />

<br />

<br />

19 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

<br />

<br />

<br />

<br />

Property from<br />

schema’s<br />

dfdl:format<br />

Property via<br />

dfdl:ref<br />

www.ogf.org


Agenda<br />

<strong>DFDL</strong> Language Overview<br />

<strong>Specification</strong> Update<br />

IBM <strong>DFDL</strong> <strong>1.0</strong><br />

<strong>Open</strong> source Daffodil<br />

Demo of IBM <strong>DFDL</strong><br />

Next steps<br />

20 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


Status<br />

<br />

<br />

<br />

<strong>DFDL</strong> <strong>1.0</strong> spec is currently a Proposed Recommendation<br />

– GFD-P-R.174<br />

– Since Feb 2011<br />

Progress towards Recommendation<br />

– Two implementations underway<br />

– Several errata found<br />

– Likely to require another Public Comment phase<br />

Supplementary publications<br />

– HTML version of spec<br />

– Multi-part tutorial (in progress)<br />

– GFD-I.190 Mapping between <strong>DFDL</strong> Infoset <strong>and</strong> XDM<br />

– GWD-I Example set of <strong>DFDL</strong> properties (in Public Comment)<br />

21 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

21<br />

www.ogf.org


Errata<br />

<br />

<br />

<br />

<br />

<br />

Errata are being tracked in a separate <strong>DFDL</strong>-WG document on <strong>Grid</strong>Forge<br />

Divided into Editorial, Minor <strong>and</strong> Major<br />

Minor errata are typically clarifications to behaviour<br />

Major errata imply additional or corrected behaviour<br />

Examples of Major errata:<br />

– New failure type ‘recoverable error’ for use by dfdl:assert<br />

– Enhance Infoset to enable W3C PSVI to be built<br />

– Revise h<strong>and</strong>ling of Unicode BOMs<br />

– Limit dfdl:lengthKind ‘pattern’ to text data<br />

– Allow complex elements to be ‘nillable’<br />

– Semantic of validation when unparsing<br />

– Control of encoding/decoding errors<br />

– Renaming dfdl:separatorPolicy<br />

– Additional dfdl:occursCountKind ‘implicit’<br />

– Clarification of ‘empty’ <strong>and</strong> ‘missing’ <strong>and</strong> when to apply default values<br />

22 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

22<br />

www.ogf.org


Conformance<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<strong>DFDL</strong> <strong>1.0</strong> specification is not small! (170 pages)<br />

<strong>DFDL</strong>-WG want to make it easier to create conforming processors<br />

Conformance can be claimed separately for <strong>DFDL</strong> Parser & Unparser<br />

The features of <strong>DFDL</strong> are divided into Core <strong>and</strong> Optional<br />

A <strong>DFDL</strong> Parser, Unparser or Processor can claim to be:<br />

– Minimal<br />

– Extended<br />

– Full<br />

Example: A Minimal <strong>DFDL</strong> Parser implements just the parser <strong>and</strong> all<br />

Core features<br />

Example: An Extended <strong>DFDL</strong> Processor implements both parser <strong>and</strong><br />

unparser, all Core features plus some Optional features<br />

Conformance test suite desirable (major undertaking)<br />

23 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

23<br />

www.ogf.org


Tutorial<br />

<br />

<br />

Easier, non-normative way to learn <strong>DFDL</strong><br />

– Same idea as XML Schema <strong>1.0</strong> Primer<br />

Divided into example-based Lessons so you can learn at your own pace<br />

1. Introduction<br />

2. Language Basics<br />

3. <strong>DFDL</strong> Properties<br />

4. Modeling Basic Structures<br />

5. Modeling Alternative Structures<br />

6. Modeling Optional <strong>and</strong> Repeating Data<br />

7. Modeling Text Values<br />

8. Modeling Binary Values<br />

9. …<br />

Drafts available for Lessons 1 to 6<br />

24 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

24<br />

www.ogf.org


Agenda<br />

<strong>DFDL</strong> Language Overview<br />

<strong>Specification</strong> Update<br />

IBM <strong>DFDL</strong> <strong>1.0</strong><br />

<strong>Open</strong> source Daffodil<br />

Demo of IBM <strong>DFDL</strong><br />

Next steps<br />

25 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


IBM <strong>DFDL</strong> <strong>1.0</strong><br />

Designed as an embeddable component<br />

– Shipped with IBM WebSphere Message Broker V8 in 4Q 2011<br />

– Other IBM products will adopt<br />

<strong>DFDL</strong> processor<br />

– Parser <strong>and</strong> Unparser (Java <strong>and</strong> C versions)<br />

– Uses compiled schema (grammar)<br />

– SAX-like events<br />

– Streaming, on-dem<strong>and</strong><br />

Tooling for creating <strong>DFDL</strong> models<br />

– Eclipse plugins<br />

– Guided authoring wizards<br />

– COBOL importer wizard<br />

– <strong>DFDL</strong> schema editor<br />

– Debug model using real data from within tooling<br />

<strong>DFDL</strong> infocenter<br />

– Includes HTML version of spec<br />

26 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


IBM <strong>DFDL</strong> <strong>1.0</strong> - Status<br />

IBM <strong>DFDL</strong> <strong>1.0</strong> implements about 85% of the OGF <strong>DFDL</strong> <strong>1.0</strong> specification<br />

– Support for rest will be added in future IBM <strong>DFDL</strong> releases<br />

Currently unsupported:<br />

– Bi-directional text<br />

– Unordered groups & floating elements<br />

– Regular expressions<br />

– Hidden groups & calculated values<br />

– Certain XPath functions<br />

– Delimited binary data<br />

– Arrays with stop values<br />

– Default values (parser) & complex default values (serializer)<br />

– Prefixed length (serializer)<br />

IBM <strong>DFDL</strong> <strong>1.0</strong> already implements majority of the identified spec errata<br />

Can I use it?<br />

– Yes, if you buy WebSphere Message Broker<br />

– Can download free trial edition<br />

27 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


Agenda<br />

<strong>DFDL</strong> Language Overview<br />

<strong>Specification</strong> Update<br />

IBM <strong>DFDL</strong> <strong>1.0</strong><br />

<strong>Open</strong> source Daffodil<br />

Demo of IBM <strong>DFDL</strong><br />

Next steps<br />

28 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


<strong>Open</strong> Source Daffodil<br />

Hosted at University of Illinois<br />

– Uses Scala programming language<br />

– Also Git, Eclipse, Jira, Fisheye, ...<br />

– Univ of Illinois license (very BSD-like)<br />

Goal is to implement the entire <strong>DFDL</strong> specification<br />

– Parser <strong>and</strong> Unparser<br />

– DOM-tree-style implementation<br />

– Not streaming/event (yet)<br />

Active contributors from both corporations <strong>and</strong> US government labs<br />

– Details are available on the project Wiki<br />

– Big interest in <strong>DFDL</strong> from a US government department<br />

– Contributors are welcome!<br />

29 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


<strong>Open</strong> Source Daffodil - Status<br />

History<br />

– Started at the Univ of Illinois' National Center for Supercomputing Applications<br />

• With funding from US National Archives <strong>and</strong> Records Administration<br />

– Designed for an earlier working-copy of the <strong>DFDL</strong> specification<br />

Activity<br />

– Code-base is being refactored <strong>and</strong>/or rewritten to provide conformance to<br />

current <strong>DFDL</strong> <strong>1.0</strong> specification<br />

– New compiler-style front-end that parses <strong>DFDL</strong> schemas <strong>and</strong> constructs a<br />

robust abstract syntax tree of the schema<br />

Themes<br />

– Design-for-Test (DFT) - conformance tests means lots of tests<br />

• Re-using the .tdml test format from IBM <strong>DFDL</strong><br />

– Convert to a more declarative <strong>and</strong> functional coding style<br />

Can I use it?<br />

– Not just yet (ongoing changes means it is very unstable right now)<br />

– Milestone #1: 3Q 2012 to have something usable, stable, interesting<br />

– Milestone #2: 2013 to have conforming implementation<br />

30 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


Agenda<br />

<strong>DFDL</strong> Language Overview<br />

<strong>Specification</strong> Update<br />

IBM <strong>DFDL</strong> <strong>1.0</strong><br />

<strong>Open</strong> source Daffodil<br />

Demo of IBM <strong>DFDL</strong><br />

Next steps<br />

31 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


IBM <strong>DFDL</strong> <strong>1.0</strong> – Schema editor<br />

Logical<br />

structure<br />

view<br />

<strong>DFDL</strong><br />

properties<br />

view<br />

32 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


IBM <strong>DFDL</strong> <strong>1.0</strong> – Schema debugger<br />

Parsed<br />

‘infoset’<br />

Run<br />

parser<br />

Sample<br />

Parsed<br />

data<br />

data<br />

33 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

Delimiters<br />

highlighted<br />

Hex view<br />

www.ogf.org


IBM <strong>DFDL</strong> <strong>1.0</strong> – Schema debugger<br />

Object in<br />

error<br />

Parsed<br />

‘infoset’ up<br />

to error<br />

Error<br />

message<br />

Model<br />

<strong>and</strong> data<br />

linked<br />

Parsed<br />

data up to<br />

error<br />

Trace<br />

console<br />

34 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


Agenda<br />

<strong>DFDL</strong> Language Overview<br />

<strong>Specification</strong> Update<br />

IBM <strong>DFDL</strong> <strong>1.0</strong><br />

<strong>Open</strong> source Daffodil<br />

Demo of IBM <strong>DFDL</strong><br />

Next steps<br />

35 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


Next Steps<br />

<br />

<br />

<br />

<br />

<br />

<strong>DFDL</strong>-WG conference calls held every Tuesday<br />

Current focus is on identifying <strong>and</strong> resolving any errata<br />

Need to complete Tutorial<br />

Contributors welcome to open source ‘Daffodil’ project<br />

Join the mailing list http://www.ogf.org/mailman/listinfo/dfdl-wg<br />

36 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

36<br />

www.ogf.org


Links<br />

OGF <strong>DFDL</strong> home page: http://www.ogf.org/dfdl/<br />

<strong>DFDL</strong> <strong>1.0</strong> specification (pdf): http://www.ogf.org/documents/GFD.174.pdf<br />

<strong>DFDL</strong> <strong>1.0</strong> specification (html): http://www.ogf.org/dfdl/spec.php<br />

<strong>DFDL</strong> tutorial: http://forge.gridforum.org/sf/docman/do/listDocuments/projects.dfdlwg/docman.root.current_0.documents<br />

<strong>DFDL</strong>-WG <strong>Grid</strong>Forge project: https://forge.ogf.org/sf/projects/dfdl-wg<br />

<strong>DFDL</strong> Wikipedia page: http://en.wikipedia.org/wiki/<strong>DFDL</strong><br />

IBM WebSphere Message Broker trial edition:<br />

http://www.ibm.com/developerworks/downloads/ws/wmb/<br />

<strong>Open</strong> Source Daffodil:<br />

https://opensource.ncsa.illinois.edu/confluence/display/<strong>DFDL</strong>/Home<br />

37 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org


Grazie<br />

Italian<br />

Thai<br />

Traditional Chinese<br />

Russian<br />

Gracias<br />

Spanish<br />

Obrigado<br />

Brazilian Portuguese<br />

Danke<br />

German<br />

Merci<br />

French<br />

Arabic<br />

Simplified Chinese<br />

Japanese<br />

38 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />

www.ogf.org

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!