Coder Social home page Coder Social logo

topology-prodec's Introduction

Topology-ProDec - A Pattern-based Problem Detection Framework for TOSCA Topologies

build status

The Topology-ProDec can be used to identify problems in TOSCA topology templates. Based on known architecture and design knowledge in form of patterns these problems are formalized as Prolog rules. Patterns can be stored as markdown files with a predefined structure. Based on these pattern files a Prolog file is generated. A TOSCA topology template which shall be checked is transformed in aProlog file containing the topology elements as Prolog facts. The topology facts are checked with the contained patterns. A JSON file with the detected problems are returned.

Project Structure

  • All pattern markdown files are stored in pattern-prologfiles. An example is the Secure Channel. This structure must also be adhered to for all other patterns.
  • The generated file patterns.pl contains all Prolog rules from the pattern files.
  • The helper.pl encompasses additinal rules which ease the description of the pattern rules.
  • The generated TOSCA topologies as Prolog facts are contained in the topologies folder.

Setup

  1. Install SWI Prolog at your system - SWI Download
  2. Add SWI to the environment variable PATH of your system (e.g. C:\Program Files\swipl\bin)
  3. Make sure that a Winery instance is running under port 8080 - Winery Setup Information
  4. Checkout the topology-prodec repository and run the application
  5. Use a REST-Client to call the Topology-ProDec. A call must look like this:

http://[IP address]:[port]/recognize?wineryURL=[encoded Winery URL for the specific service template]

Example:

http://localhost:8090/recognize?wineryURL=http%3A%2F%2Flocalhost%3A8080%2Fwinery%2F&serviceTemplateNS=http%3A%2F%2Fwww.example.org%2Ftosca%2Fservicetemplates&serviceTemplateId=Problem_Recognition_Example_Unencrypted_Communication

  1. As a result a JSON with the problem, the pattern, and the components for which the problem has been found are returned.

Haftungsausschluss

Dies ist ein Forschungsprototyp. Die Haftung für entgangenen Gewinn, Produktionsausfall, Betriebsunterbrechung, entgangene Nutzungen, Verlust von Daten und Informationen, Finanzierungsaufwendungen sowie sonstige Vermögens- und Folgeschäden ist, außer in Fällen von grober Fahrlässigkeit, Vorsatz und Personenschäden, ausgeschlossen.

Disclaimer of Warranty

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

topology-prodec's People

Contributors

saatkamp avatar lharzenetter avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.