Web Services: Difference between revisions

From DataFlex Wiki
Jump to navigationJump to search
Added link to Unicorn's 'Creating RESTful JSON services'.
(Finishing off)
(Added link to Unicorn's 'Creating RESTful JSON services'.)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''Web Services''' are usually defined as "''A standard means of interoperating between different software applications, running on a variety of platforms and/or frameworks''" [http://www.w3.org/2002/ws/Activity].  While many possible mechanisms could be found to satisfy this definition, in practice Web Services today (April 2008) are commonly implemented using two [[XML]] protcols: [[SOAP]] - the actual message formatting protocol - and [[WSDL]] - the service definition protocol.  Again, many low-level transmission mechanisms ''might'' be employed to facilitate the message exchange, but in practice almost all common implementations utilise the [http://tools.ietf.org/html/rfc2616 HTTP] protocol and it's [http://tools.ietf.org/html/rfc2616#section-9.5 POST] request.
'''Web Services''' are usually defined as "''A standard means of interoperating between different software applications, running on a variety of platforms and/or frameworks''" [http://www.w3.org/2002/ws/Activity].  While many possible mechanisms could be found to satisfy this definition, in practice Web Services today (April 2008) are commonly implemented using two [[XML]] protcols: [[SOAP]] - the actual message formatting protocol - and [[WSDL]] - the service definition protocol.  Again, many low-level transmission mechanisms ''might'' be employed to facilitate the message exchange, but in practice almost all common implementations utilise the [http://tools.ietf.org/html/rfc2616 HTTP] protocol and it's [http://tools.ietf.org/html/rfc2616#section-9.5 POST] request.
==Articles==
This section lists all pages in the 'Web Services' category.
<categorytree mode=pages depth="1">Web Services</categorytree>
==Useful External Resources==
*[https://www.unicorninterglobal.com/company/white-papers/creating-restful-json-web-services-in-dataflex Creating RESTful JSON Web Services in DataFlex]


==Web Service Protocols==
==Web Service Protocols==
Line 10: Line 22:


Don't worry if you have missed the latest emerging web service standard - there will be another one along in a minute!
Don't worry if you have missed the latest emerging web service standard - there will be another one along in a minute!


==VDF Implementation==
==VDF Implementation==
<small>''Main article [[Web Service Basics]]''</small>
''Main article: [[Web Service Basics]]''


Within Visual DataFlex, Web Services are implemented through two mechanisms: one for creating '''services''' and the other for creating '''clients''' of existing services.
Within Visual DataFlex, Web Services are implemented through two mechanisms: one for creating '''services''' and the other for creating '''clients''' of existing services.


===VDF Web Services===
===VDF Web Services===
Line 22: Line 36:


By default [[Visual DataFlex]] publishes [http://www.ibm.com/developerworks/webservices/library/ws-docstyle.html Document Style] web services and unless you have a pressing reason to use the alternative ([http://en.wikipedia.org/wiki/Remote_procedure_call RPC] Style) you should adhere to this (it can however be changed by setting ''pbDocumentStyle'' to ''False'').  This means that, except in the simplest cases (such as the much-cited example of serving up a stock price), you will need to [[Web_Service_Basics#Defining_XML_Documents|define the documents]] which are to be passed to and from the service's operations.  These are defined as extended data-types - structs and arrays - which can be combined to produce documents of arbitrary complexity.
By default [[Visual DataFlex]] publishes [http://www.ibm.com/developerworks/webservices/library/ws-docstyle.html Document Style] web services and unless you have a pressing reason to use the alternative ([http://en.wikipedia.org/wiki/Remote_procedure_call RPC] Style) you should adhere to this (it can however be changed by setting ''pbDocumentStyle'' to ''False'').  This means that, except in the simplest cases (such as the much-cited example of serving up a stock price), you will need to [[Web_Service_Basics#Defining_XML_Documents|define the documents]] which are to be passed to and from the service's operations.  These are defined as extended data-types - structs and arrays - which can be combined to produce documents of arbitrary complexity.


===VDF Web Service Clients===
===VDF Web Service Clients===
Web Service Clients are created in Visual DataFlex by creating a new class (''New'' -> ''Class'' -> ''Client Web Service Class'') and inserting the [[URL]] of the [[WSDL]] of the target service (which might be an Internet URl, or a file on your local machine or network).  A class is then generated which acts as a ''Proxy'' (or ''Stub'') for the service.  Dragging an object of this class (usually from the ''Web Services'' section of the [[Class Palette]]) onto the component you are working on in the Designer view creates a object of the class, and through the class package defines all of the data types needed to interact with it.  The service can then be invoked by calling the methods (functions and procedures) of the object as though it were the service itself (hence the ''Proxy'' terminology).
Web Service Clients are created in Visual DataFlex by creating a new class (''New'' -> ''Class'' -> ''Client Web Service Class'') and inserting the [[URL]] of the [[WSDL]] of the target service (which might be an Internet URl, or a file on your local machine or network).  A class is then generated which acts as a ''Proxy'' (or ''Stub'') for the service.  Dragging an object of this class (usually from the ''Web Services'' section of the [[Class Palette]]) onto the component you are working on in the Designer view creates a object of the class, and through the class package defines all of the data types needed to interact with it.  The service can then be invoked by calling the methods (functions and procedures) of the object as though it were the service itself (hence the ''Proxy'' terminology).


==Further Topics==
==Further Topics==
Line 43: Line 59:
----
----


[[Category:Web Applications]]
[[Category:Web Services]]
[[Category:Web Services]]

Navigation menu