[ 
https://issues.apache.org/jira/browse/DAFFODIL-2536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Olabusayo Kilo updated DAFFODIL-2536:
-------------------------------------
    Priority: Minor  (was: Major)

> Refactoring for Separable Runtimes/Back-ends
> --------------------------------------------
>
>                 Key: DAFFODIL-2536
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2536
>             Project: Daffodil
>          Issue Type: Improvement
>          Components: Back End, Front End
>    Affects Versions: 3.1.0
>            Reporter: Mike Beckerle
>            Priority: Minor
>
> (Copied from section _Refactoring for Separable Runtimes/Back-ends_ on the 
> wiki page:
> [https://cwiki.apache.org/confluence/display/DAFFODIL/Roadmap+for+Upcoming+Releases])
> Daffodil's layering structure is not right. People want to treat the daffodil 
> schema compiler as a service that starts with a DFDL schema and creates the 
> optimized intermediate objects that a runtime backend then converts into 
> runtime objects (Runtime1), generated code (codegen-c), or other formal 
> artifacts. One should be able to do this from an outside application of 
> Daffodil, not be adding things into Daffodil. Today you can't do this.
> Fixing this requires flipping the layering structure of Daffodil, so that 
> daffodil-core, which contains the schema compiler, is split out from the API 
> for generating an executable artifact. The schema compiler should be a 
> library called from a higher layer.
> The Daffodil API may need to evolve substantially to accommodate this. The 
> notion that the Daffodil Compiler creates a ProcessorFactory which creates a 
> DataProcessor is fundamentally flawed with respect to the way people need to 
> use parts of Daffodil, and to decoupling runtimes/back-ends from the rest of 
> Daffodil.
> As an example, there are many ETL and EAI tools for transforming data. They 
> each have their own ad-hoc format description language. A natural thing to do 
> is to use Daffodil's compiler to convert from DFDL into the format 
> description of one of these other ETL tools. This should be doable by reusing 
> Daffodil's schema compiler to do all the checking associated with DFDL 
> schemas, and to lower the representation to the optimized "Gram" objects that 
> effectively represent the compiler output. A runtime, or converter tool, 
> consumes this "Gram" object representation and outputs whatever artifact is 
> needed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to