GithubHelp home page GithubHelp logo

zakharyevich / eip-designer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lbroudoux/eip-designer

0.0 2.0 0.0 1.52 MB

A Sirius designer for Enterprise Integration Patterns

License: Apache License 2.0

Java 100.00%

eip-designer's Introduction

I have talked about EIP Designer at SiriusCon 2015 Paris on December 3rd. Here are the slides of the prez.

eip-designer

A Sirius designer for Enterprise Integration Patterns (see http://www.enterpriseintegrationpatterns.com/ for introduction of what are EIP). It allows you to design integration routes using the common patterns and vocabulary used within Enterprise Application Integration or Enterprise Services Bus solutions.

Here's an overview of the design perspective :

overview

Moreover designing routes, the goal of EIP Designer is also to give :

  • acceleration to realization by allowing generation of route skeletons for common integration frameworks such as Spring Integration or Apache Camel,
  • control onto final realization by providing parsers and comparators able to check that development was done respecting "original design".

Finally, we aim to provide adapters and bridges to allow the usage of EIP Designer from a more generic and abstract design solution such as a TOGAF or a Archimate Designer. Those one presenting the notion of Services and Services dependencies without a mean of describing orchestration process or integration routes ... everything we thought EIP is great at !

If you're looking for a deeper introduction on solution and project genesis, we invite you reading this InfoQ's article.

Build Status

Current development version is 0.4.1-SNAPSHOT. Build Status

Releases

Versions Date Update site
0.4.0 Dec. 18 2015 http://dl.bintray.com/lbroudoux/maven/eip-designer/0.4.0/
0.3.0 Sep. 21 2015 http://dl.bintray.com/lbroudoux/maven/eip-designer/0.3.0/
0.2.0 Aug. 06 2015 http://dl.bintray.com/lbroudoux/maven/eip-designer/0.2.0/
0.1.0 Jun. 16 2015 http://dl.bintray.com/lbroudoux/maven/eip-designer/0.1.0/

Installation

Pre-requisites

EIP Designer needs at least Eclipse Luna SR1 with modeling stuffs. We recommend using directly the Modeling Tools distribution of Eclipse available from download page.

After having installed and ran Eclipse, you also need to add Sirius 2.0. See the download page on http://www.eclipse.org/sirius on how to add Sirius to your Eclipse modeling installation.

Released versions

Find the correct update site URL in the above Releases table and just use this URL as an update site into your Eclipse installation within Install New Software.... More details on available features are mentioned below when talking about Usage, Generators and Bridges.

Development version

Want to live on the edge ? The development version of EIP Designer could either be :

  • built from sources to get distributable and installable binary packages or,
  • directly imported into Eclipse workbench for local tests.

For early testers, snapshot P2 repositories are regularly setup and provisioned here: http://dl.bintray.com/lbroudoux/maven/eip-designer/. Just use this URL to see if there's a snapshot for current version and use URL as an update site into your Eclipse installation within Install New Software....

Build from sources

In order to build from sources, you'll need Apache Maven (version >= 3.0). After having cloned the Github repository, just go to the repository root and run :

$ mvn clean install

This should build and install all binary plugins into your Maven local repository under the com.github.lbroudoux.dsl.eip group / sub directories.

Import into Eclipse

After having cloned the Github repository, just launch Eclipse and do a regular projet import (Import... > Existing Projects into Workspace) of all the projects located under /plugins and /features directories.

Now just launch a new Run As... > Eclipse Application to launch a new Workbench containing all imported plugins.

Usage

Designer

Using designer is rather simple and follow Eclipse Modeling and Sirius guidelines :

  • Create a new Modeling Project within your workspace,
  • Add to this project a new Eip Model resource (choose EIP Model as the root object for model),
  • Update the Viewpoint selection for this project (right-click on project while being into Sirius perspective)

We provide a new viewpoint simply named Enterprise Integration Patterns and applicable when your project contains a *.eip resource as shown below.

viewpoint

Your project is now ready !

Designer provides only 2 diagrams :

  • A Routes Catalog that just allows you to create and remove Route definitions within your model,
  • A Route Diagram that allows you to specify a Route behaviour using the tools and semantics shown in top screenshot.

Generators

Generators are provided within features dedicated to specific generation target. For now, there's support for Apache Camel, Spring Integration and JBoss SwitchYard.

Check our Wiki documentation on how to use generators.

Parsers and comparators

Once features mentioned into Generators section are presents, comparison of implementations files with base model is made available through a new Compare With EIP Route context item within the traditional Compare With... submenu.

Then, select a Route definition within an EIP Model present into your workspace and you should be able to inspect differences onto a quite standard Compare dialog :

compare

Bridges

One of our goal is also to provide an easy way to integrate EIP Designer with other solutions in order to offer a complementary viewpoint onto system design. For example, you may want to integrate EIP route design features with a Enterprise Architecture related designer in order to offer continuum between Service communication design and Service realization design.

Check our Wiki documentation on how to write a custom bridge !

TOGAF Designer

As an example, we provide a bridge for the TOGAF Designer from Obeo. This feature brings you a new contextual menu contribution for designing EIP route from Togaf Information System Service within diagrams as shown below :

togaf

As soon as you have choosen a target EIP Model as the container for the Service Route design, it initializes a complete EIP design for the Service realization and by bringing in every service dependencies identified within Togaf designer :

togaf-route

License

This software is licensed under the Apache 2 license, quoted below.

Copyright 2015 Laurent Broudoux

Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under
the License.

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.