Skip to main content

Konveyor Tackle Data Gravity Insights

Project description

Tackle Data Gravity Insights

Build Status PyPI version License

Tackle Data Gravity Insights is a new way to gain insights into your monolithic application code so that you can better refactor it into domain driven microservices. It takes a wholistic approach to application modernization and refactoring by triangulating between code, and, data, and transactional boundaries.

Application modernization is a complex topic with refactoring being the most complicated undertaking. Current tools only look at the application source code or only at the runtime traces when refactoring. This, however, yields a myopic view that doesn't take into account data relationships and transactional scopes. This project hopes to join the three views of application, data, and transactions into a 3D view of the all of the application relationships so that you can easily discover application domains of interest and refactor them into microservices. Accordingly, DGI consists of three key components:

1. Call-/Control-/Data-dependency Analysis (code2graph): This is a source code analysis component that extracts various static code interaction features pertating to object/dataflow depdendecies and thir respective lifecycle information. It presents this information in a graphical format with Classes as nodes and their dataflow, call-return, and heap-dependency interactions edges. For more details, see here.

2. Schema: This component of DGI infers the schema of the underlying databases used in the application. It presents this information in a graphical format with database tables and columns as nodes and their relationships (e.g., foreign key, etc.) as edges. For more details, see docs/Schema.md.

3. Transactions to graph (tx2graph): This component of DGI leverages Tackle-DiVA to perform a data-centric application analysis. It imports a set of target application source files (*.java/xml) and provides following analysis result files. It presents this information in a graphical format with database tables and classes as nodes and their transcational relationships as edges. For more details, see here.

Installation

Tackle Data Gravity Insights is written in Python and can be installed using the Python package manager pip.

pip install tackle-dgi

Usage

You will need an instance of Neo4j to store the graphs that dgi creates. You can start one up in a docker container and set an environment variable to let dgi know where to find it.

docker run -d --name neo4j \
    -p 7474:7474 \
    -p 7687:7687 \
    -e NEO4J_AUTH="neo4j/tackle" \
    neo4j

export NEO4J_BOLT_URL="bolt://neo4j:tackle@localhost:7687"    

You can now use the dgi command to load information about your application into the graph database.

$ gdi --help

Usage: dgi [OPTIONS] COMMAND [ARGS]...

    Tackle Data Gravity Insights

Options:
    -a, --abstraction TEXT          The level of abstraction to use when
                                    building the graph. Valid options are:
                                    class, method, or full.  [default: class]
    -q, --quiet / -v, --verbose     Be more quiet/verbose  [default: verbose]
    -c, --clear / -dnc, --dont-clear
                                    Clear (or don't clear) graph before loading
                                    [default: clear]
    --help                          Show this message and exit.

Commands:
    c2g   This command loads Code dependencies into the graph
    s2g   This command parses SQL schema DLL into a graph
    tx2g  This command loads DiVA database transactions into a graph

Contributing

To contribute to this project you will need to set up your development environment and set up some files. These are the steps:

  1. Set up your Developer Environment
  2. Getting Started

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tackle-dgi-0.0.4.tar.gz (27.2 kB view details)

Uploaded Source

Built Distribution

tackle_dgi-0.0.4-py3-none-any.whl (37.7 kB view details)

Uploaded Python 3

File details

Details for the file tackle-dgi-0.0.4.tar.gz.

File metadata

  • Download URL: tackle-dgi-0.0.4.tar.gz
  • Upload date:
  • Size: 27.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for tackle-dgi-0.0.4.tar.gz
Algorithm Hash digest
SHA256 2d2c8aa6b6003cb6f3c986e37adcc2df5f82dd30049eeec176b775c8020d7ce0
MD5 7faff929e3c821a8737be9d57089b38f
BLAKE2b-256 efd9b9076328a7dbae52ae73cb0b457a976ef747552882e42e9c67421427f5df

See more details on using hashes here.

File details

Details for the file tackle_dgi-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: tackle_dgi-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 37.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for tackle_dgi-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c26c8a22aeb93db8993fe836b789d19b8de29738a4852ebea83a99093f06e352
MD5 310132741e17b56fccbb5db79eb41151
BLAKE2b-256 d446b4abab1d0dfad0f383dffa6d8cf70b37c42ae3c40e7e8b479faac48e6f5e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page