SlideShare uma empresa Scribd logo
1 de 23
Web Service Architecture
Prem Krishna Chettri
Table of Contents
 What’s Web Service?
 Why Web Service?
 Architecture Overview
 XML
 SOAP
 WSDL
 NetSuite Web Service
What’s Is Web Service?
 Web services are application programming interfaces
(API) or Web APIs that are accessed via some
protocols like HTTP.
 “Software application identified by a URI, whose
interfaces and bindings are capable of being
defined, described, and discovered as XML artifacts”
– W3C Web Services Architecture
Requirements, Oct. 2002
Why Web Services?
 Allow companies to reduce the cost of doing e-
business, to deploy solutions faster
 Need a common program-to-program communications
model
 Allow heterogeneous applications to be integrated
more rapidly, easily and less expensively
 Facilitate deploying and providing access to business
functions over the Web
XML
 XML Inherited from SGML which is a markup
language like HTML.
 XML stands for Extensible Markup Language
because we can Extend its capability.
 XML uses parser to decode the file content.
Example :-
 <?xml version="1.0"?>
 <note>
 <to>Receiver</to>
 <from>Sender </from>
 <heading>Reminder</heading>
 <body>Message Body!</body>
 </note>
SOAP: Simple Object
Access Protocol
 What is SOAP?
 SOAP is a communication protocol
 SOAP is for communication between applications
 SOAP is a format for sending messages
 SOAP is designed to communicate via Internet
 SOAP is platform independent
 SOAP is language independent
 SOAP is based on XML
 SOAP is simple and extensible
 SOAP will be developed as a W3C standard
SOAP Message Structure
 Request and Response messages
 Request invokes a method on a remote
object
 Response returns result of running the
method
 SOAP specification defines an
“envelop”
 “envelop” wraps the message itself
 Message is a different vocabulary
 Namespace prefix is used to distinguish
the two parts
Application-specific
message vocabulary
SOAP Envelop
vocabulary
SOAP Request Message
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.stock.org/stock">
</soap:Body>
</soap:Envelope>
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
SOAP Envelope
Message
SOAP Envelope
Namespace
Message
Namespace
SOAP Response Message
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.stock.org/stock">
</soap:Body>
</soap:Envelope>
<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>
</m:GetStockPriceResponse>
SOAP Envelope
Message
Result
returned in
Body
Web Services Description Language
 What is WSDL?
 WSDL is written in XML
 WSDL is an XML document
 WSDL is used to describe Web services
 WSDL is also used to locate Web services
 WSDL is not yet a W3C standard
 Operational information about the service
 Location of the service
 Service interface
 Implementation details for the service interface
WSDL Document Structure (1/2)
 <portType> element
 Defines a web service, the operations that can be
performed, and the messages that are involved
 <message> element
 Defines the data elements of an operation
 consists of one or more parts.
 The parts can be compared to the parameters of a
function call in a traditional programming language
WSDL Document Structure (2/2)
 <types> element
 Defines the data type that are used by the web
service
 For maximum platform neutrality, WSDL uses XML
Schema syntax to define data types
 <binding> element
 Defines the message format and communication
protocols used by the web service
NetSuite WSDL
 <defination xmlns:..>
 <types>
 <xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>
 <xsd:import namespace=“ “ schemaLocation=“ ”>
 <xsd:import namespace=“ “ schemaLocation=“ ”>
 ……….
 </xsd:schema>
 </types>
 <message name=“ ”>
 <part name =“ “ element =“ ”>
 </message>
 <portType name=“NetSuitePortType”>
 <operation name=“Login”>
 <input name = “ login Request” message=“tns:loginRequest”>
 <outpur name=“loginResponse” message=“tns:loginResponse”>
 </operation>
 </portType>
WSDL Continuation
 <binding name="NetSuiteBinding" type="tns:NetSuitePortType">
 <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
 <operation name="login">
 <soap:operation soapAction="login"/>
 <input name="loginRequest">
 <soap:header message="tns:headers" part="applicationInfo" use="literal"/>
 <soap:header message="tns:headers" part="partnerInfo" use="literal"/>
 <soap:body use="literal"/>
 </input>
 <output name="loginResponse">
 <soap:body use="literal"/>
 </output>
 <fault name="InsufficientPermissionFault">
 <soap:fault name="InsufficientPermissionFault" use="literal"/>
 </fault>
 </operation>
 </binding>
 <service name="NetSuiteService">
 <port name="NetSuitePort" binding="tns:NetSuiteBinding">
 <soap:address location="https://webservices.netsuite.com/services/NetSuitePort_2012_2"/>
 </port>
 </service>
 </definitions>
XML Schema Definition (XSD)
 An XML schema describes the structure of an
XML document.
NetSuite XSD’s:-
1>core.xsd,
2>messages.xsd,
3>faults.xsd,
4>common.xsd etc.
Web Service Model (1/3)
Web Service Model (2/3)
 Roles in Web Service architecture
 Service provider
 Owner of the service
 Platform that hosts access to the service
 Service requestor
 Business that requires certain functions to be satisfied
 Application looking for and invoking an interaction with a
service
 Service registry
 Searchable registry of service descriptions where service
providers publish their service descriptions
Web Service Model (3/3)
 Operations in a Web Service Architecture
 Publish
 Service descriptions need to be published in order for
service requestor to find them
 Find
 Service requestor retrieves a service description directly
or queries the service registry for the service required
 Bind
 Service requestor invokes or initiates an interaction with
the service at runtime
NetSuite WebServices
 General Setup (UI) :-
 To enable the Web services feature:
1. As administrator, click Setup > Company > Enable Features.
2. Click the SuiteCloud tab.
3. Select the Web Services check box.
4. Click Save.
 Enable Show Internal ID from :-
1. Home > Set Preferences.
2. Click the General Tab.
3. check the Show Internal IDs box.
NetSuite IDE Setup
 Project Setup :-
1> Install the IDE ( Visual Studio or Eclipse).
2> Create a New Project.
3> Add Web Reference. Using Below given URL’s
 WSDL URL :-
https://webservices.netsuite.com/wsdl/v2012_2_0/netsuite.wsdl
 SOAP URL :-
https://webservices.netsuite.com/services/NetSuitePort_2012_2
Note :- Use dynamic method to get the correct service url’s by getDataCenterUrls() api.
 WebService Listener :-
https://webservice.na1.netsuite.com
 Schema Browser (For Reference):-
https://system.netsuite.com/help/helpcenter/en_US/SchemaBrowser/indexv2012_2_0.html
Web Services Class and API’s
 “NetSuiteService” Class is a primary Class
exposed by NetsuiteWeb Interface.
 It has exposed Events and API’s
Example :- add, delete, update, initialize
get, search etc.
Practical’s Next
Q&A
Thank You

Mais conteúdo relacionado

Mais procurados

Web Service Implementation Using ASP.NET
Web Service Implementation Using ASP.NETWeb Service Implementation Using ASP.NET
Web Service Implementation Using ASP.NET
Ponraj
 
Intro to web services
Intro to web servicesIntro to web services
Intro to web services
Neil Ghosh
 
Service Oriented Architecture Luqman
Service Oriented Architecture LuqmanService Oriented Architecture Luqman
Service Oriented Architecture Luqman
Luqman Shareef
 

Mais procurados (20)

Web Service Implementation Using ASP.NET
Web Service Implementation Using ASP.NETWeb Service Implementation Using ASP.NET
Web Service Implementation Using ASP.NET
 
Java web services
Java web servicesJava web services
Java web services
 
Webservices
WebservicesWebservices
Webservices
 
Web service Introduction
Web service IntroductionWeb service Introduction
Web service Introduction
 
web service technologies
web service technologiesweb service technologies
web service technologies
 
Intro to web services
Intro to web servicesIntro to web services
Intro to web services
 
Understanding Web services
Understanding Web servicesUnderstanding Web services
Understanding Web services
 
Description of soa and SOAP,WSDL & UDDI
Description of soa and SOAP,WSDL & UDDIDescription of soa and SOAP,WSDL & UDDI
Description of soa and SOAP,WSDL & UDDI
 
Web services
Web servicesWeb services
Web services
 
SOA - From Webservices to APIs
SOA - From Webservices to APIsSOA - From Webservices to APIs
SOA - From Webservices to APIs
 
Java Web Services [3/5]: WSDL, WADL and UDDI
Java Web Services [3/5]: WSDL, WADL and UDDIJava Web Services [3/5]: WSDL, WADL and UDDI
Java Web Services [3/5]: WSDL, WADL and UDDI
 
Service Oriented Architecture Luqman
Service Oriented Architecture LuqmanService Oriented Architecture Luqman
Service Oriented Architecture Luqman
 
Introduction to web services and how to in php
Introduction to web services and how to in phpIntroduction to web services and how to in php
Introduction to web services and how to in php
 
Soap web service
Soap web serviceSoap web service
Soap web service
 
Web service
Web serviceWeb service
Web service
 
Cloud computing by Luqman
Cloud computing by LuqmanCloud computing by Luqman
Cloud computing by Luqman
 
Web services
Web servicesWeb services
Web services
 
Web service introduction 2
Web service introduction 2Web service introduction 2
Web service introduction 2
 
Develop ASP.Net Web Service
Develop ASP.Net Web Service Develop ASP.Net Web Service
Develop ASP.Net Web Service
 
Web Services ppt
Web Services pptWeb Services ppt
Web Services ppt
 

Destaque

Operator overloading
Operator overloadingOperator overloading
Operator overloading
farhan amjad
 
C++ Advanced
C++ AdvancedC++ Advanced
C++ Advanced
Vivek Das
 
Exception handling and templates
Exception handling and templatesException handling and templates
Exception handling and templates
farhan amjad
 
Building Embedded Linux
Building Embedded LinuxBuilding Embedded Linux
Building Embedded Linux
Sherif Mousa
 

Destaque (20)

Building Apps with MongoDB
Building Apps with MongoDBBuilding Apps with MongoDB
Building Apps with MongoDB
 
STL ALGORITHMS
STL ALGORITHMSSTL ALGORITHMS
STL ALGORITHMS
 
Distributed Systems Design
Distributed Systems DesignDistributed Systems Design
Distributed Systems Design
 
The Style of C++ 11
The Style of C++ 11The Style of C++ 11
The Style of C++ 11
 
Idiomatic C++
Idiomatic C++Idiomatic C++
Idiomatic C++
 
Improving The Quality of Existing Software
Improving The Quality of Existing SoftwareImproving The Quality of Existing Software
Improving The Quality of Existing Software
 
Operator overloading
Operator overloadingOperator overloading
Operator overloading
 
C++ Advanced
C++ AdvancedC++ Advanced
C++ Advanced
 
Bjarne Stroustrup - The Essence of C++: With Examples in C++84, C++98, C++11,...
Bjarne Stroustrup - The Essence of C++: With Examples in C++84, C++98, C++11,...Bjarne Stroustrup - The Essence of C++: With Examples in C++84, C++98, C++11,...
Bjarne Stroustrup - The Essence of C++: With Examples in C++84, C++98, C++11,...
 
Operator overloading
Operator overloading Operator overloading
Operator overloading
 
An Introduction to Part of C++ STL
An Introduction to Part of C++ STLAn Introduction to Part of C++ STL
An Introduction to Part of C++ STL
 
Solid principles of oo design
Solid principles of oo designSolid principles of oo design
Solid principles of oo design
 
SOLID Principles part 2
SOLID Principles part 2SOLID Principles part 2
SOLID Principles part 2
 
Programming In C++
Programming In C++ Programming In C++
Programming In C++
 
SOLID Principles part 1
SOLID Principles part 1SOLID Principles part 1
SOLID Principles part 1
 
Exception handling and templates
Exception handling and templatesException handling and templates
Exception handling and templates
 
Inheritance, polymorphisam, abstract classes and composition)
Inheritance, polymorphisam, abstract classes and composition)Inheritance, polymorphisam, abstract classes and composition)
Inheritance, polymorphisam, abstract classes and composition)
 
Memory Management In C++
Memory Management In C++Memory Management In C++
Memory Management In C++
 
MongoDB and hadoop
MongoDB and hadoopMongoDB and hadoop
MongoDB and hadoop
 
Building Embedded Linux
Building Embedded LinuxBuilding Embedded Linux
Building Embedded Linux
 

Semelhante a Web Service Basics and NWS Setup

Web service- Guest Lecture at National Wokshop
Web service- Guest Lecture at National WokshopWeb service- Guest Lecture at National Wokshop
Web service- Guest Lecture at National Wokshop
Nishikant Taksande
 
Service Oriented Architecture Updated Luqman
Service Oriented Architecture Updated  LuqmanService Oriented Architecture Updated  Luqman
Service Oriented Architecture Updated Luqman
guesteb791b
 
Web services
Web servicesWeb services
Web services
aspnet123
 
Enterprise Software Architecture
Enterprise Software ArchitectureEnterprise Software Architecture
Enterprise Software Architecture
rahmed_sct
 
webservices overview
webservices overviewwebservices overview
webservices overview
elliando dias
 
Xml web services
Xml web servicesXml web services
Xml web services
Raghu nath
 

Semelhante a Web Service Basics and NWS Setup (20)

Xml.ppt
Xml.pptXml.ppt
Xml.ppt
 
Web service- Guest Lecture at National Wokshop
Web service- Guest Lecture at National WokshopWeb service- Guest Lecture at National Wokshop
Web service- Guest Lecture at National Wokshop
 
Understanding Web Services by software outsourcing company india
Understanding Web Services by software outsourcing company indiaUnderstanding Web Services by software outsourcing company india
Understanding Web Services by software outsourcing company india
 
Web services overview
Web services overviewWeb services overview
Web services overview
 
Service Oriented Architecture Updated Luqman
Service Oriented Architecture Updated  LuqmanService Oriented Architecture Updated  Luqman
Service Oriented Architecture Updated Luqman
 
Web services
Web servicesWeb services
Web services
 
Web Services
Web Services Web Services
Web Services
 
Web services SOAP Notes
Web services SOAP NotesWeb services SOAP Notes
Web services SOAP Notes
 
Web Programming
Web ProgrammingWeb Programming
Web Programming
 
Web services and SOA [Modified]
Web services and SOA [Modified]Web services and SOA [Modified]
Web services and SOA [Modified]
 
Web services and SOA
Web services and SOAWeb services and SOA
Web services and SOA
 
Exposing EJBs As Web Services
Exposing EJBs As Web ServicesExposing EJBs As Web Services
Exposing EJBs As Web Services
 
WebService-Java
WebService-JavaWebService-Java
WebService-Java
 
SOA and web services
SOA and web servicesSOA and web services
SOA and web services
 
Enterprise Software Architecture
Enterprise Software ArchitectureEnterprise Software Architecture
Enterprise Software Architecture
 
webservices overview
webservices overviewwebservices overview
webservices overview
 
Xml web services
Xml web servicesXml web services
Xml web services
 
Unit 3-SOA Technologies
Unit 3-SOA TechnologiesUnit 3-SOA Technologies
Unit 3-SOA Technologies
 
Build Message-Based Web Services for SOA
Build Message-Based Web Services for SOABuild Message-Based Web Services for SOA
Build Message-Based Web Services for SOA
 
WS-Addressing: Enabling Transport-Neutral Message Addressing and Correlation
WS-Addressing: Enabling Transport-Neutral Message Addressing and CorrelationWS-Addressing: Enabling Transport-Neutral Message Addressing and Correlation
WS-Addressing: Enabling Transport-Neutral Message Addressing and Correlation
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Web Service Basics and NWS Setup

  • 2. Table of Contents  What’s Web Service?  Why Web Service?  Architecture Overview  XML  SOAP  WSDL  NetSuite Web Service
  • 3. What’s Is Web Service?  Web services are application programming interfaces (API) or Web APIs that are accessed via some protocols like HTTP.  “Software application identified by a URI, whose interfaces and bindings are capable of being defined, described, and discovered as XML artifacts” – W3C Web Services Architecture Requirements, Oct. 2002
  • 4. Why Web Services?  Allow companies to reduce the cost of doing e- business, to deploy solutions faster  Need a common program-to-program communications model  Allow heterogeneous applications to be integrated more rapidly, easily and less expensively  Facilitate deploying and providing access to business functions over the Web
  • 5. XML  XML Inherited from SGML which is a markup language like HTML.  XML stands for Extensible Markup Language because we can Extend its capability.  XML uses parser to decode the file content. Example :-  <?xml version="1.0"?>  <note>  <to>Receiver</to>  <from>Sender </from>  <heading>Reminder</heading>  <body>Message Body!</body>  </note>
  • 6. SOAP: Simple Object Access Protocol  What is SOAP?  SOAP is a communication protocol  SOAP is for communication between applications  SOAP is a format for sending messages  SOAP is designed to communicate via Internet  SOAP is platform independent  SOAP is language independent  SOAP is based on XML  SOAP is simple and extensible  SOAP will be developed as a W3C standard
  • 7. SOAP Message Structure  Request and Response messages  Request invokes a method on a remote object  Response returns result of running the method  SOAP specification defines an “envelop”  “envelop” wraps the message itself  Message is a different vocabulary  Namespace prefix is used to distinguish the two parts Application-specific message vocabulary SOAP Envelop vocabulary
  • 8. SOAP Request Message <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:m="http://www.stock.org/stock"> </soap:Body> </soap:Envelope> <m:GetStockPrice> <m:StockName>IBM</m:StockName> </m:GetStockPrice> SOAP Envelope Message SOAP Envelope Namespace Message Namespace
  • 9. SOAP Response Message <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:m="http://www.stock.org/stock"> </soap:Body> </soap:Envelope> <m:GetStockPriceResponse> <m:Price>34.5</m:Price> </m:GetStockPriceResponse> SOAP Envelope Message Result returned in Body
  • 10. Web Services Description Language  What is WSDL?  WSDL is written in XML  WSDL is an XML document  WSDL is used to describe Web services  WSDL is also used to locate Web services  WSDL is not yet a W3C standard  Operational information about the service  Location of the service  Service interface  Implementation details for the service interface
  • 11. WSDL Document Structure (1/2)  <portType> element  Defines a web service, the operations that can be performed, and the messages that are involved  <message> element  Defines the data elements of an operation  consists of one or more parts.  The parts can be compared to the parameters of a function call in a traditional programming language
  • 12. WSDL Document Structure (2/2)  <types> element  Defines the data type that are used by the web service  For maximum platform neutrality, WSDL uses XML Schema syntax to define data types  <binding> element  Defines the message format and communication protocols used by the web service
  • 13. NetSuite WSDL  <defination xmlns:..>  <types>  <xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>  <xsd:import namespace=“ “ schemaLocation=“ ”>  <xsd:import namespace=“ “ schemaLocation=“ ”>  ……….  </xsd:schema>  </types>  <message name=“ ”>  <part name =“ “ element =“ ”>  </message>  <portType name=“NetSuitePortType”>  <operation name=“Login”>  <input name = “ login Request” message=“tns:loginRequest”>  <outpur name=“loginResponse” message=“tns:loginResponse”>  </operation>  </portType>
  • 14. WSDL Continuation  <binding name="NetSuiteBinding" type="tns:NetSuitePortType">  <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>  <operation name="login">  <soap:operation soapAction="login"/>  <input name="loginRequest">  <soap:header message="tns:headers" part="applicationInfo" use="literal"/>  <soap:header message="tns:headers" part="partnerInfo" use="literal"/>  <soap:body use="literal"/>  </input>  <output name="loginResponse">  <soap:body use="literal"/>  </output>  <fault name="InsufficientPermissionFault">  <soap:fault name="InsufficientPermissionFault" use="literal"/>  </fault>  </operation>  </binding>  <service name="NetSuiteService">  <port name="NetSuitePort" binding="tns:NetSuiteBinding">  <soap:address location="https://webservices.netsuite.com/services/NetSuitePort_2012_2"/>  </port>  </service>  </definitions>
  • 15. XML Schema Definition (XSD)  An XML schema describes the structure of an XML document. NetSuite XSD’s:- 1>core.xsd, 2>messages.xsd, 3>faults.xsd, 4>common.xsd etc.
  • 17. Web Service Model (2/3)  Roles in Web Service architecture  Service provider  Owner of the service  Platform that hosts access to the service  Service requestor  Business that requires certain functions to be satisfied  Application looking for and invoking an interaction with a service  Service registry  Searchable registry of service descriptions where service providers publish their service descriptions
  • 18. Web Service Model (3/3)  Operations in a Web Service Architecture  Publish  Service descriptions need to be published in order for service requestor to find them  Find  Service requestor retrieves a service description directly or queries the service registry for the service required  Bind  Service requestor invokes or initiates an interaction with the service at runtime
  • 19. NetSuite WebServices  General Setup (UI) :-  To enable the Web services feature: 1. As administrator, click Setup > Company > Enable Features. 2. Click the SuiteCloud tab. 3. Select the Web Services check box. 4. Click Save.  Enable Show Internal ID from :- 1. Home > Set Preferences. 2. Click the General Tab. 3. check the Show Internal IDs box.
  • 20. NetSuite IDE Setup  Project Setup :- 1> Install the IDE ( Visual Studio or Eclipse). 2> Create a New Project. 3> Add Web Reference. Using Below given URL’s  WSDL URL :- https://webservices.netsuite.com/wsdl/v2012_2_0/netsuite.wsdl  SOAP URL :- https://webservices.netsuite.com/services/NetSuitePort_2012_2 Note :- Use dynamic method to get the correct service url’s by getDataCenterUrls() api.  WebService Listener :- https://webservice.na1.netsuite.com  Schema Browser (For Reference):- https://system.netsuite.com/help/helpcenter/en_US/SchemaBrowser/indexv2012_2_0.html
  • 21. Web Services Class and API’s  “NetSuiteService” Class is a primary Class exposed by NetsuiteWeb Interface.  It has exposed Events and API’s Example :- add, delete, update, initialize get, search etc.