WebMethods Flow

WebMethods Flow

Infobox programming language
name = webMethods Flow

paradigm = Object-oriented, structured, graphical
year = 1990s
designer = webMethods
typing =
implementations = webMethods Integration Server
dialects =
influenced_by = Java, flow charts
influenced =
operating_system = Cross-platform
license = commercial
website = http://www.webmethods.com/

webMethods Flow (known as "flow code" or simply "flow") is a graphical programming language [http://www1.webmethods.com/images/products/screenshots/wm_ESP_BI_2.jpgwebMethods Flow code mapping screenshot] ] that runs within the webMethods Integration Server. It was designed to simplify tedious, difficult to maintain or error prone aspects of integration/B2B activities. [http://www.webmethods.com/Products/ESP/BI/Features WebMethods Business Integration – Detailed Features] ]

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

History

webMethods 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" 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. [http://www.jroller.com/page/nathan?entry=webmethods_pipeline_variable_passing_and explanation of the webMethods pipeline] ]

yntax

There are the following operators in the flow language: [http://www.jroller.com/page/nathan?entry=intro_to_webmethods_flow Nathan's Intro to webMethods Flow] ]
* Map
* Invoke
* Branch
* Loop
* Repeat
* Exit
* Sequence

The operators are stored on disk as XML but this is not generally edited directly, rather the IDE (webMethods Developer) 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
* Easy exposure of flow services as webServices and use of webServices 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, the user group [http://www.wmusers.com 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 platform as an implementation, so should a shift from that platform be desired a complete re-write of all flow code is required

ee also

*webMethods Integration Server - the platform flow runs in
*webMethods Developer - the IDE
*webMethods - the creating company

References

External links

* [http://wmusers.com/forum/forumdisplay.php?f=47 wmusers forum for flow and java services]
* [http://www.jroller.com/page/nathan?entry=intro_to_webmethods_flow Introduction to webMethods flow]


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Flow — may refer to:In science and technology: *Dataflow, computing term related to the flow of messages between software components *Environmental flow, the amount of water necessary in a watercourse to maintain a healthy ecosystem *Flow (computer… …   Wikipedia

  • WebMethods Integration Server — Infobox Software name = webMethods Integration Server caption = developer = WebMethods latest release version = 7.1 latest release date = 10 SEP, 2007 operating system = Cross platform genre = Application server license = Commercial website =… …   Wikipedia

  • WebMethods Developer — Infobox Software name = webMethods Developer caption = developer = webMethods latest release version = 7.0 latest release date = 10 Jan, 2007 operating system = Cross platform genre = Integrated Development Environment license = Commercial… …   Wikipedia

  • List of programming languages by category — Programming language lists Alphabetical Categorical Chronological Generational This is a list of programming languages grouped by category. Some languages are listed in multiple categories. Contents …   Wikipedia

  • GXS (company) — Infobox Company name = GXS Incorporated company company slogan = No Trading Partner Left Behind company type = Private foundation = 1967 location = Gaithersburg, MD area served = Worldwide key people = David Stanton, Chairman Bob Segert, Chief… …   Wikipedia

  • Comparison of business integration software — This article is a comparison of business integration and business process automation software. Contents 1 General 1.1 Scope 1.2 General information 2 Compatibility and intero …   Wikipedia

  • Enterprise application integration — (EAI) is defined as the uses of software and computer systems architectural principles to integrate a set of enterprise computer applications.OverviewSupply chain management applications (for managing inventory and shipping), customer… …   Wikipedia

  • Microsoft BizTalk Server — Microsoft BizTalk Server, often referred to as simply BizTalk , is an Enterprise Service Bus. Through the use of adapters which are tailored to communicate with different software systems used in an enterprise, it enables companies to automate… …   Wikipedia

  • Service-oriented architecture — (SOA) is a method for systems development and integration where functionality is grouped around business processes and packaged as interoperable services . SOA also describes IT infrastructure which allows different applications to exchange data… …   Wikipedia

  • Mobile application development — is the process by which application software is developed for small low power handheld devices such as personal digital assistants, enterprise digital assistants or mobile phones. These applications are either pre installed on phones during… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”