WebMethods Flow
Encyclopedia
webMethods Flow is a graphical programming language that runs within the webMethods Integration Server. It was designed to simplify tedious, difficult to maintain or error prone aspects of integration/B2B activities.

The webMethods Developer is the IDE in which to write flow code.

History

webMethods
WebMethods
webMethods is an enterprise software company, acquired by Software AG, focused on application integration, business process integration and B2B partner integration. Founded in 1996, the company pioneered the use of web services to connect software applications together within a single organization...

 developed flow as a technology to increase the ease and speed of development on their B2B/enterprise integration platform. A language that would be a suitable fit with the desire for a service based application server was another driving force.

Philosophy

The main driver behind flow syntax was to allow the graphical configuration of the mapping logic that forms the major part of Integration projects. Transformation and conversion of data in a text based programming language quickly becomes unwieldy and cluttered. It is also quite difficult to maintain due to the cumbersome nature. Flow code seeks to alleviate this problem by creating a programming language similar to the way you would indicate mapping of data if your source and destination data formats were placed side by side on a white board and lines connecting source to destination.

The other goal of flow was to allow a service based view of the application. Any existing code is a service. Invoking functionality is akin to treating it as a "black box
Black box
A black box is a device, object, or system whose inner workings are unknown; only the input, transfer, and output are known characteristics.The term black box can also refer to:-In science and technology:*Black box theory, a philosophical theory...

" requiring certain inputs (which are mapped from your available variables). The results of that operation are then treated as outputs of the "black box". The concept of the "pipeline" is the means by which to pass data to and get results back from invocation of services.

Syntax

There are the following operators in the flow language:
  • Map
  • Invoke
  • Branch
  • Loop
    Loop
    - Technology :*Loop , sending a signal on a channel and receiving it back at the sending terminal*Loop , a method of control flow in computer science*Loop device, a Unix device node that allows a file to be mounted on a directory...

  • Repeat
  • Exit
  • Sequence


The operators are stored on disk as XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

 but this is not generally edited directly, rather the IDE (webMethods Developer
WebMethods Developer
webMethods Developer is the Java-based Integrated development environment for developing code on the webMethods Integration Server.It allows development in webMethods Flow which is a graphical programming language designed to simplify and speed up integration application development...

) is used.

Advantages

  • Mapping logic is easily performed and fairly natural to understand (by a range of technical abilities from Developer to business analyst).
  • Allows ease of reuse of existing services via a service based view of code
  • Allows rapid prototyping
  • Natural fit to the SOA model of software architecture
  • Automatic exposure of all services (Java and Flow) as Web Services and use of Web Services as "services" to be invoked

Criticisms

  • Incorrectly used flow can produce some ugly code due to too much in the way of mapping in a single Map operation.
  • It is a proprietary language and as such there is little support or reference material available outside webMethods
    WebMethods
    webMethods is an enterprise software company, acquired by Software AG, focused on application integration, business process integration and B2B partner integration. Founded in 1996, the company pioneered the use of web services to connect software applications together within a single organization...

    , the user group wmusers.com and a few isolated user created pages.
  • Source code is stored as XML, making it rather difficult to use traditional editors, source control and merge tools.
  • The graphical nature of the language may give the impression that non-technical staff are capable of writing good code in it. A technical background in other programming languages is of great advantage in producing good quality flow code.
  • Fairly heavily mouse driven compared to java/c++/c# etc and can result in sore mouse arm while first developing in it
  • Only the webMethods
    WebMethods
    webMethods is an enterprise software company, acquired by Software AG, focused on application integration, business process integration and B2B partner integration. Founded in 1996, the company pioneered the use of web services to connect software applications together within a single organization...

     platform has an implementation, so should a shift from that platform be desired a complete re-write of all flow code is required
  • Code refactorization is only partially supported by the tool and had to be done by hand
  • Due to specific approach of viewing and editing the Flow code, in complex implementation is very hard to find and understand existing code, because enforcing multiple mouse clicking at subsequent steps in Flow code to see parameters/details (HTML view might be little more helpful).

See also

  • webMethods Integration Server
    WebMethods Integration Server
    webMethods Integration Server is one of the core application servers in the webMethods platform.It is a Java-based, multiplatform enterprise integration server. It supports the integration of diverse services, such as mapping data between formats and communication between systems...

     - the platform flow runs in
  • webMethods Developer
    WebMethods Developer
    webMethods Developer is the Java-based Integrated development environment for developing code on the webMethods Integration Server.It allows development in webMethods Flow which is a graphical programming language designed to simplify and speed up integration application development...

     - the IDE
  • webMethods
    WebMethods
    webMethods is an enterprise software company, acquired by Software AG, focused on application integration, business process integration and B2B partner integration. Founded in 1996, the company pioneered the use of web services to connect software applications together within a single organization...

    - the creating company

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK