1 / 12

Strukt , Build Changes and Backend Support

Strukt , Build Changes and Backend Support. Jonathan Custance James Green John Thomson Stuart Simms OnApp Ltd. Overview. Background What is needed? How to proceed Representing the data model Phased code generation Questions. Background. OnApp provide ‘cloud’ control software

Download Presentation

Strukt , Build Changes and Backend Support

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Strukt, Build Changes and Backend Support Jonathan Custance James Green John Thomson Stuart Simms OnAppLtd.

  2. Overview • Background • What is needed? • How to proceed • Representing the data model • Phased code generation • Questions

  3. Background • OnApp provide ‘cloud’ control software • OnApp customers have thousands of ‘clouds’ geographically spread • OnApp will offer customers ‘federation’ of ‘cloud’ resource • OnApp engagement with CO led to a joint proposal for industrial use for ‘federation’ • Proposal includes architecture/tool changes, as well as governance.

  4. What is needed? • Simple, OCCI compatible, data model representation • Open source code generation, part of the build process – simplify code base • Support of differing backends for categories – allow flexible CO deployment • Efficient data access – inter-component and for UI/admin modules • Simple expression of deployment configuration

  5. How to proceed • Provide open build system, extensible by all for any CO deployment • Data model agreed, specified and version controlled • Phased development plan agreed, leading to replacement code generation tool • Each development phase reviewed and tested prior to merge, check CO behaviour unchanged • Phasing hooks in with governance changes and move to GitHub

  6. Representing the data model #1 • Category data model is an XML version of OCCI - supports kinds, links, mixins& actions • Flexible attribute definition covering: • Types, incl. enums and default values • Units, validation and indexation • Collection – allow an attribute to specify relationships with other categories • Backend help to allow category to specify common links and mixins

  7. Representing the data model #2 • Components • allow model to specify which categories are within a component • Deployment • allow the specific deployment model to be specified • Configuration • specify backends and their configuration • configure which categories use which backend

  8. Phased code generation – goal Models Models Categories Code Categories Components Models Components Code Generation Traditional Build DB Schemas Deployment Scripts Parser XSDs Deployment Configuration

  9. Phased code generation – current state • Data model and tools within source tree • Auto-generated files removed • Ready for migration to GitHub • autogen build process updated to: • Try it out – pull master today • New dependency – Python 2.7 Models Models Models Category .c files Category .h files Category Model XMLs Code Generation Strukt Traditional Build

  10. Phased code generation – next steps #1 • Updated category generation • Auto-generate Actions API from model (not from component) • Split code around CRUDL API to allow different backends • Backend Integration code generation • Schema/migration data generation for Backend System REST Server OCCI Server Component Actions API CRUDL API Backend Integration Category Backend System e.g. SQL

  11. Phased code generation – next steps #2 • Component generation • Simple components entirely generated • Simplifies code for components with business logic • Deployment script generation • Create deployment scripts for chosen deployment model • Ensure category access optimised • Supports: Compact (single process), Small, Large & Scalable

  12. Questions?

More Related