Tuesday, January 5, 2016

EAI


webMethods


Intro to webMethods flow

Copped a referrer link from a google search ("Flow Services are physically stored on the webMethods Integration Server), thought I'd provide some information to answer it as someone's trying to figure out how it all works.

WebMethods Flow Language
WebMethods Flow is a graphical language for performing common types of integration operations such as mapping, invoking, looping, branching.

Flow Operations
The operations supported by the language:

Invoke - for kicking off other services
Map - for manipulating the pipeline (e.g. put a value into, drop a value or map from one to another)
Branch - for executing different paths depending on some condition (like if-else structures or like a switch statement depending on how you use it)
Loop - for iterating over the elements in a list structure in the pipeline
Repeat - I prefer to call it "retry", as it will retry the child operations while those child operations either fail or succeed (depending on how you want it to operate)
Sequence - for grouping together operations and alterning how exceptions will be treated (e.g. you might want to exit on failure, or exit on success, or ignore any errors/successes and just keep processing)
Exit - for jumping out of the flow, the parent, the loop, or back to a label on one of the parents etc
When you're developing, you're working off code on the Integration Server, which is generally a shared development box. So there is nothing really stored on your machine except any unsaved changes. It is stored on the Integration Server in an xml file (in a file called flow.xml inside the directory structure of the package it lives in) and converted into an in-memory representation of the tree of operations which can be executed (all under the covers.. you just write the flow code and it does the rest).

When flow doesn't cut it
Flow is not meant to be able to do everything, that's why you write java services to wrap up any extra code that flow becomes too messy, or you just can't do it.. and then invoke that java service from your flow. After a while you end up with enough "building block" services that you can reuse that functionality by simple invoke.

A little advice: Some people get tempted to do too much in java services, things like maps for instance: general rule I would say is to always use flow for mapping. Java just isn't as maintainable for mapping of nested structures as a few map steps that you've defined by click and drag.

Further Info
Since this won't teach you anywhere enough to get on with development:

Still can't go past webMethods training for a great way to learn how to get going on webMethods
To get up and running and to get an idea of webmethods terminology, see my earlier post on Crash course on webmethods integration server
testing for webmethods, you'd be wanting WmUnit - the webmethods testing framework (shameless plug warning)
Refer to the ISDevelopersGuide.pdf that comes with the installation of the Developer tool


I)Introduction:
The company pioneered the use of web services to connect software applications together within a single organization and across the Internet.
II)Focused On:
1)Application Integration.
2)Business Process Integration.
3)B2B Partner integration.
III)Basis:
It is based on the idea to use the new standards of the Web such as HTTP and XML to allow software applications to communicate with one another in a real time.
Series of development consist of:
1)Web Automation Server.
2)Web Methods B2B Integration Server.


IV)Basic Function of this software:
 It is basically an “engine for running services” .A service can be viewed as a black box which performs some computational function. It takes in required data, required messages  and generates the output as required by the required computation. 
The Web method  integration server is a service engine therefore to IS, everything is viewed as a service.


V)Other Components of it are as follows:
1)Integration Servers:
It is the engine for running services .Many other modules are used as an add on the integration server on the top of the IS. Some of the examples are Trading Networks, Flat File Handler and Business Process
Modeler  as well as the administrative GUI’s for other modules.
Features of the Integration Server is as follows:
 a) An engine for running local services, distributed services, web services.
 b) A client enabler to invoke local services, distributed services, web services.
c) To bind two disparate systems.
d) An XML parser and generator.
It uses the Webmethod  Flow Procedural Statements which are :
1) MAP(assignment statement).
2) BRANCH(decision statement).
3) LOOP(iteration statement).
In addition the flow language has the following extra 4 statements:
4) INVOKE (subroutine call).
5) SEQUENCE(compound statement)
6) EXIT
7) REPEAT(another iteration)
2) Trading Networks:
It is a service that acts as an interface between the internet and the Webmethod . It tracks down data between the multiple external  partners and an integration server.It performs  task such as
a)Authentication
b)Authorization
c)Document Identification
d)Logging  and activity monitoring.

It can be viewed as a generalized document router, but in reality it acts as simply another service running with the integration server. It can be invoked via a variety of mechanisms such as HTTP, FTP, SMTP, Web Services ,java client or via publish/subscribe.


3)Broker:

It acts as separate server which helps to pass data between the multiple instances of the integration Server. In it a service publishes a document to the broker and the broker delivers the document to all services that subscribe to the document. The  Broker performs routing of messages in a reliable and efficient manner.


4)JAVA Service:
Java is used to write for all the services except the running services. The cases  when java should not be used to write services are as follows :

1)The Webmethod developer does not  provide an IDE for java.
2)Java program cannot easily manipulate the pipeline which is used by integration server to pass data among services.
3)Java is harder to implement in comparision to the flow language.


VI)Webmethods  Installation:
Its products are not free and the cost goes up high to have it. The products  can be installed from the internet if you have an access to the appropriate license key.
An installer program WebmethodsInstaller651.exe is needed to access the installation files.

The installation choices are as follows:
a)We can deploy the products online on a single machine kust by opting out for the prompts interactively or via a script file.
b)We can download products to a image file which can be later used for the local deployments,by answering  prompts interactively or via a script file.


VII)Hardware Configuration requirements:
a)2-3 GHz CPU.
b)1-2 GB RAM
c)40-80 GB HDD.
d)Compatible with both Unix and Windows OS(Unix is favored for the production system but windows is better for an experimental purpose).
e)A Database(For example Oracle or SQL Server)


VIII)webMethods  Products :

It produces a lot of the products that focuses on

a)Enterprise Application Integration Market(EAI):
It is concerned with integrating disparate systems such as application servers (SAP, Seibel, Peoplesoft ),
Database management  systems(Oracle, SQL Server, DB2),mainframe and custom applications(J2EE).


b)Business-to-Business market(B2B):
It is concerned with enabling separate  companies to exchange electronic documents , such as purchase orders ,invoices, etc .



IX)Notes(Concepts to be known):
1)XML-RPC: It works by sending a HTTP request to a server implementing the protocol.

Client(software)------------------------->Server(That implements that protocol)
                                  (HTTP Call)

In this multiple input parameters can be passed to remote  method, but only one return value is returned.
2) WIDL (Web Interface Definition Language) is a 1997 standard for interactions between websites.

X)References are as follows:

Google and other blogs.

No comments:

Post a Comment