Difference between revisions of "Web Services"

From GreenVulcano Wiki
Jump to: navigation, search
({{VULCON}} / {{GVCONSOLE}} Configuration)
(Create new {{GVWS}} with {{VULCON}})
Line 18: Line 18:
  
 
==Create new {{GVWS}} with {{VULCON}}==
 
==Create new {{GVWS}} with {{VULCON}}==
''excelreader-call'' is the operation that must be configured into {{L_VULCON}} or  {{L_GVCONSOLE}} [[System section]], to convert an Excel file in [[GVBuffer.object]] field, in an XML document.
+
VulCon provides two wizards to create new Web Services. The first one starting from an {{GVESB}} service and creating the WSDL and the AAR to deploy (bottom-up development method), the second one, starting from a WSDL, creating {{GVESB}} services for each operation chosen (top-down development method).
In order to add an operation ''excelreader-call'' you must define the following fields:
 
 
 
* ''class'': it.greenvulcano.gvesb.virtual.excel.reader.GVExcelReaderCallOperation (java class that manage ''ExcelReaderCall'' invocation).
 
* ''name'': this field identify the operation name that you will use in service definition.
 
* ''onlyData'': is a boolean field, it enabled in output cell formatting informations.  If 'false', insert in the XML document also the cell formatting informations.
 
  Default to 'true'.
 
* ''type'': call
 
 
 
 
 
The following example shows the configuration generated from {{L_VULCON}} or {{L_GVCONSOLE}} when you configure an ''excelreader-call'' operation:
 
 
 
<syntaxhighlight lang="XML"><?xml version="1.0" encoding="UTF-8"?>
 
<GVSystems name="SYSTEMS" type="module">
 
    <Systems>
 
        <System id-system="system-name" system-activation="on">
 
            <Channel id-channel="CHANNEL_NAME">
 
                <excelreader-call class="it.greenvulcano.gvesb.virtual.excel.reader.GVExcelReaderCallOperation"
 
                                  name="ReadExcelInput" type="call" onlyData="true"/>
 
            </Channel>   
 
        </System>
 
    </Systems>
 
</GVSystems>
 
</syntaxhighlight>
 
 
 
 
 
To use an ''excelreader-call'' in a {{GVESB}} service, you need to define a node of type [[GVOperationNode]] in [[Service section]] and define in the field ''operation-name'' the name defined in ''excelreader-call'' operation.
 
 
 
The following example shows the configuration generated from {{L_VULCON}} or {{L_GVCONSOLE}} when you configure an ''excelreader-call'' operation in {{GVESB}} service:
 
 
 
<syntaxhighlight lang="XML"><?xml version="1.0" encoding="UTF-8"?>
 
<GVServices name="SERVICES" type="module">
 
    <Groups>
 
        <Group group-activation="on" id-group="DEFAULT_GRP"/>
 
    </Groups>
 
    <Services>
 
        <Service group-name="DEFAULT_GRP" id-service="SERVICE-NAME"
 
                service-activation="on">
 
            <Client id-system="SYSTEM-NAME" statistics="off" system-activation="on">
 
                <Operation name="RequestReply" operation-activation="on"
 
                          out-check-type="none" type="operation">
 
                    <Participant id-channel="CHANNEL-NAME" id-system="SYSTEM-NAME"/>
 
                    <Flow first-node="excel_reader" point-x="20" point-y="112">
 
                        <GVOperationNode class="it.greenvulcano.gvesb.core.flow.GVOperationNode"
 
                                        id="excel_reader" id-system="DAMA"
 
                                        input="input" next-node-id="end"
 
                                        op-type="call"
 
                                        operation-name="ReadExcelInput"
 
                                        output="excel_xml" point-x="158"
 
                                        point-y="112" type="flow-node"/>
 
                        <GVEndNode class="it.greenvulcano.gvesb.core.flow.GVEndNode"
 
                                  end-business-process="yes" id="end" op-type="end"
 
                                  output="excel_xml" point-x="358" point-y="112"
 
                                  type="flow-node"/>
 
                    </Flow>
 
                </Operation>
 
            </Client>   
 
        </Service>
 
    </Services>
 
</GVServices>
 
</syntaxhighlight>
 
 
 
 
 
At this point you have configured a service with an ''excelreader-call'' operation.
 
  
 
==Example==
 
==Example==

Revision as of 17:23, 31 January 2012

Definition

Web Service is a software system that allows the interoperability among machines on the same network. Through a Web Service it is possible to pubblish business services using a contract, called WSDL.

GreenVulcano® ESB provides a very simple method that helps developers to manage Web Services operations as:

  • create
  • invoke
  • deploy
  • publishing
  • undeploy

Any service flow can be pubblished in GreenVulcano® ESB as a Web Services.VulCon® helps the user to pubblish an ESB service as a web service, leaving the user the only task to define the data structures in order to interact with the external world.

GreenVulcano® ESB provides a complete management of Web Services through Axis2 platform. It supports:

  • Web Services stateful and asynchronous
  • Processing SOAP Messages with XML parsing more efficient pull-based instead of DOM (Document Object Model)
  • Increased Scalability
  • Hot deploy and undeploy

Create new Web Services with VulCon

VulCon provides two wizards to create new Web Services. The first one starting from an GreenVulcano® ESB service and creating the WSDL and the AAR to deploy (bottom-up development method), the second one, starting from a WSDL, creating GreenVulcano® ESB services for each operation chosen (top-down development method).

Example

This example shows an XML document generated by a simple Excel sheet (without cols and rows grouping). Given an Excel sheet with the following structure:

ID1 ID2 ID3 ID4 ID5 ID6 ID7
23 23232 23 23333 1 2 3
24 24444 23 23332 1 2 3

excelreader-call generates the following XML:

<?xml version="1.0" encoding="UTF-8"?>
<workbook>
    <sheet number="0">
        <name><![CDATA[Foglio1]]></name>
        <row number="0">
            <col number="0">
                <data><![CDATA[ID1]]></data>
            </col>
            <col number="1">
                <data><![CDATA[ID2]]></data>
            </col>
            <col number="2">
                <data><![CDATA[ID3]]></data>
            </col>
            <col number="3">
                <data><![CDATA[ID4]]></data>
            </col>
            <col number="4">
                <data><![CDATA[ID5]]></data>
            </col>
            <col number="5">
                <data><![CDATA[ID6]]></data>
            </col>
            <col number="6">
                <data><![CDATA[ID7]]></data>
            </col>
        </row>
        <row number="1">
            <col number="0">
                <data><![CDATA[23]]></data>
            </col>
            <col number="1">
                <data><![CDATA[23232]]></data>
            </col>
            <col number="2">
                <data><![CDATA[23]]></data>
            </col>
            <col number="3">
                <data><![CDATA[711]]></data>
            </col>
            <col number="4">
                <data><![CDATA[1]]></data>
            </col>
            <col number="5">
                <data><![CDATA[1]]></data>
            </col>
            <col number="6">
                <data><![CDATA[1]]></data>
            </col>
        </row>
        <row number="2">
            <col number="0">
                <data><![CDATA[23]]></data>
            </col>
            <col number="1">
                <data><![CDATA[711]]></data>
            </col>
            <col number="2">
                <data><![CDATA[23]]></data>
            </col>
            <col number="3">
                <data><![CDATA[23232]]></data>
            </col>
            <col number="4">
                <data><![CDATA[1]]></data>
            </col>
            <col number="5">
                <data><![CDATA[1]]></data>
            </col>
            <col number="6">
                <data><![CDATA[1]]></data>
            </col>
        </row>
    </sheet>
</workbook>

With a ChangeGvBufferNode is possible parsing XML and retrieve any tag and value.

--A.sicignano 16:30, 19 January 2012 (CET)