1 / 41

INT404: Integrating Adaptive Server Enterprise with Web Services

INT404: Integrating Adaptive Server Enterprise with Web Services. Rajesh Chawla Senior Software Engineer rajesh.chawla@sybase.com August 6, 2003. Agenda. Why web services? Understanding Protocols (SOAP, WSDL, UDDI) ASE Web Services – Road map ASE Web Services Producer Demonstration

naeva
Download Presentation

INT404: Integrating Adaptive Server Enterprise with Web Services

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INT404: Integrating Adaptive Server Enterprise with Web Services Rajesh ChawlaSenior Software Engineerrajesh.chawla@sybase.comAugust 6, 2003

  2. Agenda • Why web services? • Understanding Protocols (SOAP, WSDL, UDDI) • ASE Web Services – Road map • ASE Web Services Producer • Demonstration • ASE Web Services Consumer • Demonstration

  3. Why Web Services? Web Services improve software integration • Why our current software integration solutions are not sufficient • Infrastructure needs to be created each time. • Solutions are language and platform dependent. • Each integration solution requires time for development, training and maintenance. • Why web services are better • Reduce costs for developing infrastructure. • Platform- and language-independent. • Interoperability is based on standards reducing development, training and maintenace costs.

  4. Why Web Services? (cont) The Web Services Hype • IDC predicts that Web services will become the dominant distributed computing architecture in the next 10 years. Web services will drive software, services and hardware sales of $21 billion in the U.S. by 2007 and will reach $27 billion in 2010.http://www.idcresearch.com/getdoc.jhtml?containerId=pr2003_02_03_130651 • IBM: We believe that applications will be based on compositions of services discovered and marshaled dynamically at runtime (just-in-time integration of services http://www-106.ibm.com/developerworks/library/w-ovr • Sun: Web services provide: Decreasing time to market, decreasing TCO, customer flexibility to integrate softwarehttp://www.sun.com/learnabout/webservices

  5. Why Web Services? (cont) • Web Services are self-contained, modular applications that can be described, published, located, and invoked over a network, generally the Web. • Web Services are based on XML, the universal language of Internet data exchange, and can be called across platforms and operating systems, regardless of programming language. • Web Services are associated with WSDL, UDDI, and SOAP protocol specifications. • Web Services are loosely coupled.

  6. How Web Services are Invoked From Web Services Architecture Scenarios (http://www.w3.org/TR/ws-arch-scenarios)

  7. Related Web Services Standards From Web Services Architecture Scenarios (http://www.w3.org/TR/ws-arch-scenarios)

  8. Agenda • Why web services? • Understanding Protocols (SOAP, WSDL, UDDI) • ASE Web Services – Road map • ASE Web Services Producer • Demonstration • ASE Web Services Consumer • Demonstration

  9. SOAP Simple Object Access Protocol • Standard defined by W3C (http://www.w3.org/TR/SOAP/) • XML-based protocol that consists of three parts: • An envelope that defines a framework for describing what is in a message and how to process it • A set of encoding rules for expressing instances of application-defined data types • Convention for representing remote procedure calls (RPCs) and responses • Transport independent, although most common transport is HTTP

  10. SOAP SOAP packet

  11. SOAP SOAP Packet <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1:execute soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:genwsdl.ws.ase.sybase.com"> <aseServerName xsi:type="xsd:string">superior</aseServerName> <asePortNumber xsi:type="xsd:int">9765</asePortNumber> <userName xsi:type="xsd:string">bharat</userName> <password xsi:type="xsd:string">sybase</password> <sqlxOptions xsi:type="xsd:string">tablename=ws</sqlxOptions> <sql xsi:type="xsd:string">select * from discounts</sql> </ns1:execute> </soapenv:Body>

  12. SOAP Encodings and Serialization • Encodings are representations of bits on the wire. SOAP has two types of encodings: • RPC– Defines one XML element for the name of the remote method being invoked and one XML element for each parameter of that procedure • Document – defined by agreement of caller and called • Serialization/Deserialization is the process of taking bits off the wire and converting them to structures. SOAP has two ways to do this: • Encoding – Represents data by Section 5 of the SOAP specification • Literal – Represents data by an XML schema.

  13. SOAP Effect on Performance HTTP Request HTTP Body SOAP Envelope SOAP Body SOAP Body Block Integer Sender Receiver 0x5

  14. WSDL Web Services Description Language • Standard defined by W3C (http://www.w3.org/TR/wsdl) • Describes services as a set of endpoints and how to invoke them. • Based on XML • Supports HTTP, Mime, and SOAP bindings. • Usually generated and consumed transparently by web services toolkits.

  15. WSDL stack From Web Services Architecture (http://www.w3.org/TR/2002/WD-ws-arch-20021114/)

  16. UDDI Universal Description Discovery and Integration • Standard defined by Oasis (http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=uddi-spec) • Provides a mechanism for publishing and locating web services (WSDL) • All access to a UDDI registry is by web services • UDDI registries support: • White pages – provide a search capability based on a unique identifier (such as DUNS, Thomas Registry or other). • Yellow pages – provide a search capability based on categories. Categories may include industry, product/service offering, and location. • Green pages – provide a search capability based on service type or capabilities.

  17. Putting it together From Web Services Architecture (http://www.w3.org/TR/2002/WD-ws-arch-20021114/)

  18. Agenda • Why web services? • Understanding Protocols (SOAP, WSDL, UDDI) • ASE Web Services – Road map • ASE Web Services Producer • Demonstration • ASE Web Services Consumer • Demonstration

  19. ASE Web Services – Road map • ASE 12.5.1 • Model a web service as a proxy table • Execute T-SQL using web services • Candidate features for follow on releases • Enhanced performance • Enhanced data type support • Enhanced security • UDDI support • Streaming data • Single sign-on • Transaction support • Cursor Support

  20. Delivered in ASE 12.5.1 Functionality • Access T-SQL as web methods • Generate dynamic WSDL • Model Web Service as a proxy table • Persistent database connections via sessions • SSL Support • LDAP Support • Can consume rpc/encoded and document/literal web services

  21. Agenda • Why web services? • Understanding Protocols (SOAP, WSDL, UDDI) • ASE Web Services – Road map • ASE Web Services Producer • Demonstration • ASE Web Services Consumer • Demonstration

  22. ASE Distributed Data Access

  23. ASE Web Services Producer Accessing ASE with web services ASE Any SOAP client Input: SOAP Input: JDBC Output: SOAP Output: JDBC

  24. ASE Web Services Producer (Internals)

  25. Demonstration – ASE Web Services Producer • Execute select * from discounts through Web Services

  26. Demonstration Results Resulting data <ws xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <row> <discounttype>Initial Customer</discounttype> <discount>10.5</discount> </row> <row> <discounttype>Volume Discount</discounttype> <lowqty>100</lowqty> <highqty>1000</highqty> <discount>6.7</discount> </row> <row> <discounttype>Huge Volume Discount</discounttype> <lowqty>1001</lowqty> <discount>10.0</discount> </row> <row> <discounttype>Customer Discount</discounttype> <stor_id>8042</stor_id> <discount>5.0</discount> </row> </ws>

  27. Demonstration Results Resulting DTD <!ELEMENT ws (row*)> <!ELEMENT row (discounttype, stor_id?, lowqty?, highqty?, discount)> <!ELEMENT discounttype (#PCDATA)> <!ELEMENT stor_id (#PCDATA)> <!ELEMENT lowqty (#PCDATA)> <!ELEMENT highqty (#PCDATA)> <!ELEMENT discount (#PCDATA)>

  28. Demonstration Results Resulting Schema <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqlxml="http://www.iso-standards.org/mra/9075/sqlx"> <xsd:import namespace="http://www.w3.org/2001/XMLSchema" schemaLocation="http://www.iso-standards.org/mra/9075/sqlx.xsd" /> <xsd:complexType name="RowType.ws"> <xsd:sequence> <xsd:element name="discounttype" type="VARCHAR_40" /> <xsd:element name="stor_id" type="CHAR_4" minOccurs="0" maxOccurs="1"/> <xsd:element name="lowqty" type="SMALLINT" minOccurs="0" maxOccurs="1"/> <xsd:element name="highqty" type="SMALLINT" minOccurs="0" maxOccurs="1"/> <xsd:element name="discount" type="DOUBLE" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="TableType.ws"> <xsd:sequence> <xsd:element name="row" type="RowType.ws" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType>

  29. Demonstration Results Resulting Schema (Continued) <xsd:simpleType name="VARCHAR_40"> <xsd:restriction base="xsd:string"> <xsd:length value="40"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="SMALLINT"> <xsd:restriction base="xsd:integer"> <xsd:maxInclusive value="32767"/> <xsd:minInclusive value="-32768"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="DOUBLE"> <xsd:restriction base="xsd:double"/> </xsd:simpleType> <xsd:element name="ws" type="TableType.ws"/> </xsd:schema>

  30. Agenda • Why web services? • Understanding Protocols (SOAP, WSDL, UDDI) • ASE Web Services – Road map • ASE Web Services Producer • Demonstration • ASE Web Services Consumer • Demonstration

  31. ASE Distributed Data Access

  32. ASE Web Services Consumer (Details)

  33. ASE Web Services Consumer (Internals)

  34. ASE Web Services Consumer Steps to execute • Notify ASE of existence of ASE Web Services. • sp_addserver webservices, sds, webservices • Executed once per database • Import WSDL definition. • webservice...gen_sproc_from_wsdl "WSDL File URL", "ASE host name", ASE port number • Executed once for each web service to invoke. • Execute Web Service • select RRETURN from GETTEMP where _ZIPCODE=‘80303’ • Executed as needed.

  35. Demonstration – ASE Web Services Consumer • Execute a web method located on xmethods.com site for retrieving temperature given a zip code.

  36. Demonstration Results Create proxy table using isql • 1> webservice...gen_sproc_from_wsdl "http://www.xmethods.net/sd/2001/TemperatureService.wsdl", "nnebbish", 1665 • 2> go • (return status = 0) • Return parameters: • drop table GETTEMP • create existing table GETTEMP (RRETURN float, _ZIPCODE varchar(2048) null ) external procedure at 'webservice.XMLCONNECT.TEMPERATURESERVICE.GETTEMP' • (1 row affected) • (0 rows affected)

  37. Demonstration Results Execute web method using isql • 1> select RRETURN from GETTEMP where _ZIPCODE='80303' • 2> go • RRETURN • -------------------- • 82.000000 • (1 row affected)

  38. SDN Presents CodeXchange A New Benefit for Sybase Developers • Forum for exchanging samples, tools, scripts, etc. • New features enable community collaboration • Download samples created by Sybase or external users • Leverage contributions of others to extend Sybase products • Contribute code or start your own collaborative / open source project with input from other product experts • Any SDN member can participate • Log in using your MySybase account via SDN • www.codexchange.sybase.com • Or via SDN at www.sybase.com/developer • SDN & CodeXchange at TechWave • Visit SDN in the Technology Boardwalk • Learn about CodeXchange in the Sybase Booth Theater

  39. Check Out These Related TechWave Sessions! • ASE111 - Integration, XML, and Web Services--Why are They Important to a DBA? • ASE114 - Querying and Transforming XML with XQuery, XPath, and SQLX • INT420 - Federated Database Solutions with Sybase Middleware • Boardwalk demos

  40. Resources • W3C • http://www.w3c.org • Standards committee focusing on SOAP, WSDL and a variety of other protocols including HTTP and XML. • Oasis: • http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=uddi-spec • Standards committee focusing on UDDI and a variety of other protocols. • Web Services Interoperability (WS-I) • http://www.ws-i.org/ • Industry organization focused on encouraging SOAP interoperability. • XML Protocol Comparisons • http://www.w3.org/2000/03/29-XML-protocol-matrix • This site compares and contrasts a variety of XML protocols. • Executives Guide to Web Services from the Patricia Seybold Group • http://www.psgroup.com/vm/ws/report.asp • A business look at web services.

  41. Resources • Apache Axis • http://ws.apache.org/axis/index.html • Open source SOAP/WSDL toolkit using Java. • Cover Pages • http://xml.coverpages.org/news2003Q3.html • News coverage for SGML and XML. • Sun • http://java.sun.com/xml/ • Sun’s XML and web services developer center. • Microsoft • http://msdn.microsoft.com/webservices/ • Microsoft’s web services developer center. • IBM • http://www-106.ibm.com/developerworks/webservices/ • IBM Web Services developer center.

More Related