1 / 28

Web Services Development Environment

Web Services Development Environment. CNT5715 Fall 2010 Computer Network Programming S. Mansfield. Agenda. Application of Web Services Web Services Application Example The OSI Model and Web Services Web Services Development Flow Web Services Tool Chain WSDL Example Web Service Example

selina
Download Presentation

Web Services Development Environment

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. Web ServicesDevelopment Environment CNT5715 Fall 2010 Computer Network Programming S. Mansfield

  2. Agenda Application of Web Services Web Services Application Example The OSI Model and Web Services Web Services Development Flow Web Services Tool Chain WSDL Example Web Service Example Advanced Topic: Mobile Web Services Web Services Development Environment

  3. Application of Web Services • Development of started around 1999 • Focus was web centric services and applications • Far Reaching – Any Operating System, Any Language, Any Hardware • Its really a communications architecture • Simple application programming centric – Looks like classes • Leverages TCP/IP infrastructure • Initially Over Hyped – Complex, many standards, technology hurdles • Key Standards Settled 2005 • 1st Decade Mergers and Acquisitions Drove Initial Adoption • Many disperse companies – All different IT Solutions • Integrated many systems into one • Legacy Application Migration • Federal Government – Social Security • Department of Defense – Procurement • Many Emerging Web Services Applications • Expanding into New Areas – Cloud Computing Web Services Development Environment

  4. The OSI Model & Web Services Application Application Application Presentation Web Services Session TCP UDP Others Transport TCP Network Ipv4, IPv6 Ipv4, IPv6 Datalink Device Driver & Hardware Device Driver & Hardware Physical OSI Model Internet Protocol Suite Web Services Model Web Services Development Environment

  5. Who Is Using Web Services? • SOA/WS Markets & Solutions(Forrester) • Wide Adoption Across Public, Education & Private Sectors • Excellent Vendor Development & Tool Support • Supports New & Legacy Environments • Excellent Architecture for Mobile Data Delivery • Public & Private Sector Growth(Gartner) • Universal in Europe, Rapidly Growing in the USA • 2007 – 50%> All New Large System Deployments Used SOA • 2010 – 80%> All New Large System Deployments Will Use SOA • Industry Examples(CIO) • Synovus – Commercial/Retail/ Investment Banking • T-Mobile – Re-engineered IT Solutions using SOA • Dell – Integrated WW Mfg & Delivery System with 3rd Parties • Twitter – Fully integrated SOA Service Delivery Model • Linkedin – Integrated Internal • Amazon – Integrated SOA Business Model • eBay – Integrated SOA Business Model • FedEx – Integrated SOA Business Model • Ford Motor Company – Integrated WW Supplier SOA Network • Starwood Hotels – Replace Multiple Legacy Systems with One SOA System • Verizon- Merged Multiple Legacy Acquisition Companies • CitGroup – Integrated SOA Top/Down Throughout Business • Motorola – Integrated 180 Separate Business Groups • Federal Government – Published Comprehensive SOA Roadmap • US Army – Replacing All Legacy Systems with SOA • DoD – Created Target SOA Architecture, Successfully Deploy Pilot Programs • Veterans Administration – Plans to Migrate All Systems to SOA • Several States Migrating to SOA – AZ, IA, MA, UT, TX, WA

  6. Web Service Application Web Services Based Travel Web Site Airlines -- Delta RDMS Web Browser Hotels -- Marriot Web Browser Automobiles -- Hertz Web Services Client Application • Before WS – Many 100’s Klocs • With WS – Few 10’s Klocs • Much Faster Development • Much Less Cost • Much Less Testing • World Wide 24/7 Access Web Browser Travel Customers Travel Services -- Sabre Web Services Development Environment

  7. The SOA Composite Map UDDI • UDDI – Universal Description, Discovery, and Integration • Universal phone book for Web Services • White Pages: Direct contact information • Yellow Pages: Business Description • Green Pages: Technical Information WS Server WS Client WSDL WS Server • WSDL – Web Service Description Language • Describes the complete server operation, • interface, protocols, and web ports. WSDL WS Server WSDL • BEPL – Business Execution Process Language • BPEL is the industry standard for business process • orchestration. It is an XML-based language used • for the definition and execution of business • processes as well as scientific workflows • using Web services. BPEL WSCI • WSCI – Web Services Choreography Interface • A form of service composition in which the • interaction protocol between several partner • services is defined from a global perspective Web Services Development Environment

  8. Web Services Development Environment Java Client Environment Java Enterprise Environment Internet Java RDBMS Application WSDL WS Attribute Classes WS Endpoint Interface wsimport Web Service Client Application Web Service Server • Framework • Java • .Net WS Endpoint Publisher RDBS JSE 6 .jar • Java Web Services Development Environment • Fully Integrated Framework and Utilities • End to End Enterprise/Client Communications javax.jws javax.xml.ws javax.xml.rpc javax.xml.soap javax.xml.bind Web Services Development Environment

  9. The WSDL • WSDL the most important component of Web Services • Describes what the Web Services does and how • Functions • Data types • Protocols • Where to find service • The WSDL actually describes server classes • Class name • Class methods • Class properties • The server has real objects and the client creates abstract interfaces • When either class is invoked the underlying SOAP response/request • creates method calls and updates (synchronizes) the class properties • Extremely powerful seem-less communications architecture • Maximum flexibility with no exposure to underlying communications methods • End-to-End Type Safe • Underlying programming model is all Sockets TCP/IP bases • Very strong tool support -- automatic client abstract interface class generation (wsimport) WSDL 1.1 Types Message Abstract Section PortType Operation Output Input Binding Concrete Section Service Port Web Services Development Environment

  10. WSDL Structure • Definitions • Target Namespace • WSDL XML Schema PortType  Class { } Operation  Method() Message  Property Type Msg Name  Property Name Types  Property Attributes Binding  Message Protocol Service  Server Location Web Services Development Environment

  11. Web Services Platform Architecture Server Target Object Client Abstract Interface class {} class {} Invocation Subsystem (Client Side) Invocation Subsystem (Server Side) method() method() Parameter Parameter Parameter Parameter Parameter Parameter Request SOAP Request SOAP return return return Service Endpoint Interface Proxy method() method() Parameter Parameter Parameter Response SOAP Response SOAP return return return Synchronization – Serialization -- Transmission Transmission – Serialization -- Synchronization Method Invocation SOAP Message Exchange (Specified by WSDL Method Invocation Create Abstract Classes with wsimport Annotate & Publish Objects Web Services Development Environment

  12. wsimport/wsexport object factory Server Client service{ } fclass1 { method1() prop1 method2() prop2 } wsimport WSDL • Extracts WSDL • Creates XML Schemas • Compiles Attribute Classes • objectfactory class { } • fmethods() • getprop() • setprop() • Error Handling • Multi-Threaded fclass1 { method1() prop1 method2() prop2 } getClass1 { getprop1() getprop2() } setClass1 { setprop1() setprop2() } Web Services Development Environment

  13. Who’s First Debate (Server) (Client) WSDL First Code First wsimport wsexport WSDL • Three Design Models • Code First • WSDL First • Code-WSDL First attribute classes { } end Implementation Interfaces { } Code Server Side Business Impl Create Server Side EIC’s Publish WSDL Compile WSDL Client Attribute Classes Write WSDL Compile Server Side EIC’s Code Server Side Business Impl Compile WSDL Client Attribute Classes • + Very Stable Clients • + Easy to Read WSDL • WSDL Syntax Interoperability • Less Stable Server Side Code • + Stable Server Side Code • Less Stable Client Code • Difficult to Read WSDL • Cross Platform Compatibility Web Services Development Environment

  14. Web Services Tool Chain Java RDBMS Application WSDL WS Attribute Classes WS Endpoint Interface wsimport Web Service Client Application Web Service Server • Framework • Java • .Net WS Endpoint Publisher RDBS JSE 6 .jar javax.jws javax.xml.ws javax.xml.rpc javax.xml.soap javax.xml.bind Web Services Development Environment

  15. A WSDL Example: .NET TimeServer Display WSDL on Internet Browser Examine Structure of WSDL Extract WSDL and Create Client Attribute Classes Web Services Development Environment

  16. A Simple Web Services Example: TimeServer Execution in Java Compile TimeServer Server Create Server Proxy on Local Host Compile TimeServer Client Exchange Data between Client and Local Host Server Web Services Development Environment

  17. Advanced Web Service Example: Amazon Web Service Client Extract WSDL and Create Attribute Classes Compile and Link Client Program with Attribute Classes Execute Amazon Web Service – Book Search Web Services Development Environment

  18. Advanced Web Services Topic: Mobile Web Services Android Web Services Development Environment Web Service Missing Tool Components Java RDBMS Application WSDL Proc beans xml Abst WS Endpoint Interface wsimport kSOAP2 • Framework • Java • .Net WS Endpoint Publisher Android Java WS Client RDBS Java .jars javax.jws javax.xml othes... Missing Library Components Figure 1 Web Services Development Environment

  19. Initial Android SOA Development Environment Android WS Library Android WS Attribute Classes WSDL awsimport Android Client Application Android Platform • Proposed WS Environment • Quick demonstration platform • Android specific environment • New wsimport  awsimport • Creates Android attribute classes • New Android WS Library • Utilizes kSOAP2 Libraries kSOAP2 Library COT6905 Directed Independent Study

  20. Mobile OS Platforms Android Apple iOS Blackberry OS BREW/REX Palm OS Symbian Windows Mobile Programming Languages Java Objective C/C++ Java C/C++, Java C/C++, Java C/C++, Java C++, C#, VB COT6905 Directed Independent Study

  21. Embedded OS Platforms VXWorks Win Embedded Red Hat Linux DSP/BIOS QNX pSOS eCOS Programming Languages Asm, C Asm,C, C#, VB Asm, C, C++ Asm, C Asm, C Asm, C Asm, C COT6905 Directed Independent Study

  22. Mobile SOA Development Environment Symbian iOS Blackberry OS Android Symbian IDE Plug In’s iOS Blackberry OS Android WSDL Mobile WS Attribute Classes mwsimport Libraries • Mobile SOA Environment • Fully W3C Compliant • WSDL-to-Code Environment • Multiple Platform Support • mwsimport virtual compiler • Platform Specific IDE Plug-In’s • Platform Specific Libraries Mobile Client Application Mobile Platform COT6905 Directed Independent Study

  23. Emerging Android WS Architecture Limited Resource Client Web Service Development platform Common Code Modules Code Re-Use Modules Platform Specific Client Extracted WSDL Platform Web Service Client Platform Class Compiler WSDL Object Factory Pseudo Class Builder WSDL Platform Support Environment Platform Library Extracted WSDL

  24. Pseudo Class Builder Pseudo Class Builder (WSDL 1.1/1.2) Decomposes WSDL Creates & Defines Classes & Methods Defines Elements & Types Builds Pseudo Classes WSDL Parse portType Pseudo Class ArrayList Bind I/O & Protocols Parse Operation Define service Ports Class1 Class1 Class2 Class2 Parse Message Method11() Method11() Method11() Parse Element Type Method12() Method12() Method12() Classm Classm Element11 Parse Element Type Element12 Method1n() Method1n() Method1n() Parse Element Type Element1o Concrete Classes Abstract Classes Figure 12. COT6905 Directed Independent Study

  25. Platform Class Factory Platform Class Factory Pseudo Class New className Constructor { Build class } WS Input (Output from WS Client) Marshal SOAP Object Issue SOAP RPC Message OK Object Factory Method1() Return Class1{} Class2{} Class3{} ... Message Error Post Error Element Set(element) Pseudo Class New className Constructor { Build class } Service.language.source WS Output (Input from WS Client) Deserialize SOAP Object Marshal SOAP Object Issue SOAP RPC Message OK Update Elements Method1() Return Message Error Post Error Get(element) element Figure 13. COT6905 Directed Independent Study

  26. Platform Library Classes Description Methods to facilitate SOAP calls over HTTP using the J2ME generic connection framework. HttpTransport HttpTransportBasicAuth HttpTransportSE Interface for custom Serialization/Deserialization MarshalBase64 MarshalDate MarshalFloat MarshalHashtable Interface to allow the abstraction of the raw transport information. ServiceConnection ServiceConnectionMidp ServiceConnectionSE Basic classes required for handling SOAP Envelopes and literal XML content. SoapEnvelope SoapFault SoapObject SoapPrimative Provides get and set methods for properties. Can be used to replace reflection for serialization aware classes. KvmSerializable SoapSerialization SoapServlet Abstract class which holds common methods and members that are used by the transport layers. Transport COT6905 Directed Independent Study

  27. Backup COT6905 Directed Independent Study

  28. WSDL 2.0 Structure <description> -- XML target namespaces <documentation> -- Simple text description of the WSDL WS </documentation> <types> -- Describes the message and message types used in the WSDL </types> <interface> -- Defines the interface of a WS as a set of abstract operations </interface> <binding> -- A binding specifies concrete message format and transmission protocol details for an interface and fault in the operation </binding> <service> -- Describes a single interface that the service will support and describes al list of endpoints where the service can be found </service> </description> COT6905 Directed Independent Study

More Related