BPEL4WS only uses and supports input-only and input-output operations of WSDL; output-only (notification) and output-input (solicit-response) operations are not required nor supported.
The BPEL4WS process itself is basically a flow-chart like expression of an algorithm. Each step in the process is called an activity. There are a collection of primitive activities: invoking an operation on some Web service (invoke), waiting for a message to operation of the service's interface to be invoked by someone externally (receive), generating the response of an input/output operation (reply), waiting for some time (wait), copying data from one place to another (assign), indicating that something went wrong (throw) and (catch), terminating the entire service instance (terminate), or doing nothing (empty).
These primitive activities can combined into more complex algorithms using any of the structure activities provided in the language. These are the ability to define an ordered sequence of steps (sequence), the ability to have branching using the now common "case-statement" approach (switch), the ability to define a loop (while), the ability to execute one of several alternative paths (pick), and finally the ability to indicate that a collection of steps should be executed in parallel (flow). Within activities executing in parallel, one can indicate execution order constraints by using the links.
For more info read this and this.
sorry rather go here.