WSDL and Schemas Discussion CMIS F2F January 27, 2009 Gary Gershon 203-431-9328.

Slides:



Advertisements
Similar presentations
Report from the ATF ATF team. 2 What is an Attribute? Think of it this way: –Attributes define a pattern or short hand for messages that are supported.
Advertisements

Introduction to Web Services Protocols. Talk titledate2 Communication and standards Efficient (or indeed any) communication is dependent on a shared vocabulary.
Web Service Architecture
Service Description: WSDL COMP6017 Topics on Web Services Dr Nicholas Gibbins –
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
SOAP.
SOAP SOAP is a protocol for accessing a Web Service. SOAP stands for Simple Object Access Protocol * SOAP is a communication protocol * SOAP is for communication.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
An Introduction to XML Based on the W3C XML Recommendations.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
Sets and Maps Chapter 9. Chapter 9: Sets and Maps2 Chapter Objectives To understand the Java Map and Set interfaces and how to use them To learn about.
Grid Computing, B. Wilkinson, 20043a.1 WEB SERVICES Introduction.
XML Schemas. “Schemas” is a general term--DTDs are a form of XML schemas –According to the dictionary, a schema is “a structured framework or plan” When.
Sunday, June 28, 2015 Abdelali ZAHI : FALL 2003 : XML Schemas XML Schemas Presented By : Abdelali ZAHI Instructor : Dr H.Haddouti.
Peoplesoft: Building and Consuming Web Services
Web Services Michael Smith Alex Feldman. What is a Web Service? A Web service is a message-oriented software system designed to support inter-operable.
TP2653 Adv Web Programming SOAP and WSDL. SOAP Simple Object Access Protocol – Lightweight XML-based messaging protocol – A protocol for accessing a Web.
XP New Perspectives on XML Tutorial 4 1 XML Schema Tutorial – Carey ISBN Working with Namespaces and Schemas.
Concept demo System dashboard. Overview Dashboard use case General implementation ideas Use of MULE integration platform Collection Aggregation/Factorization.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
WSDL: Web Services Definition Language CS 795/895.
I hereby declare that this document is based on my project experience. To the best of my knowledge, this document does not contain any material that infringes.
Introducing Axis2 Eran Chinthaka. Agenda  Introduction and Motivation  The “big picture”  Key Features of Axis2 High Performance XML Processing Model.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
Web Services Description Language CS409 Application Services Even Semester 2007.
WebDAV Issues Munich IETF August 11, Property URL encoding At present, spec. allows encoding of the name of a property so it can be appended to.
Chapter 8 Cookies And Security JavaScript, Third Edition.
Web Services based e-Commerce System Sandy Liu Jodrey School of Computer Science Acadia University July, 2002.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
New Perspectives on XML, 2nd Edition
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
FIMS v1.1 Version numbers in schema Richard Cartwright Quantel July 2013.
10 – 12 APRIL 2005 Riyadh, Saudi Arabia. Visual Studio 2005 : New Features for the Web Services Developer Malek Kemmou CEO Arrabeta Consulting Microsoft.
1 Web Service Description Language (WSDL) 大葉大學資工系.
Implementing the XDS Infrastructure Bill Majurski IT Infrastructure National Institute of Standards and Technology.
© Drexel University Software Engineering Research Group (SERG) 1 An Introduction to Web Services.
1 ECCF Training 2.0 Implemental Perspective (IP) ECCF Training Working Group January 2011.
XML 2nd EDITION Tutorial 4 Working With Schemas. XP Schemas A schema is an XML document that defines the content and structure of one or more XML documents.
1 Tutorial 14 Validating Documents with Schemas Exploring the XML Schema Vocabulary.
Tutorial 13 Validating Documents with Schemas
Server-side Programming The combination of –HTML –JavaScript –DOM is sometimes referred to as Dynamic HTML (DHTML) Web pages that include scripting are.
IETF 57, Vienna1 SDPng Update Dirk Jörg Carsten draft-ietf-mmusic-sdpng-06.txt.
WSRP Description and Transport Issues SC Andre Kramer, Citrix Systems Inc. 6 th WSRP F2F, Grenoble, France 12 th -14.
INT-9: Implementing ESB Processes with OpenEdge ® and Sonic ™ David Cleary Principal Software Engineer.
Semantic Phyloinformatic Web Services Using the EvoInfo Stack Speaker: John Harney LSDIS Lab, Dept. of Computer Science, University of Georgia Mentor(s):
When we create.rtf document apart from saving the actual info the tool saves additional info like start of a paragraph, bold, size of the font.. Etc. This.
XSD: XML Schema Language Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
JAVA BEANS JSP - Standard Tag Library (JSTL) JAVA Enterprise Edition.
REST By: Vishwanath Vineet.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
AMI -ENT Service Definition Team Step-by-Step Modeling and Artifacts Generation Process.
XML Validation II Advanced DTDs + Schemas Robin Burke ECT 360.
1 WSDL Web Services Description Language. 2 Goals of WSDL Describes the formats and protocols of a Web Service in a standard way –The operations the service.
.NET Mobile Application Development XML Web Services.
Introduction to Web Services Presented by Sarath Chandra Dorbala.
Web Service Definition Language. Web Services: WSDL2 Web Service Definition Language ( WSDL ) What is a web service? [ F. Leymann 2003 ] A piece of code.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
OASIS ebXML Registry Standard Open Forum 2003 on Metadata Registries 10:30 – 11:15 January 20, 2003 Kathryn Breininger The Boeing Company Chair, OASIS.
DEVELOPING WEB SERVICES WITH JAVA DESIGN WEB SERVICE ENDPOINT.
SOAP, Web Service, WSDL Week 14 Web site:
The Java API for XML-Based Web Services. A Web Service example in Java SOAP-awareServlet (e.g. Apache Axis2) SOAP-awareServlet Any class processing the.
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved Chapter 9 Web Services: JAX-RPC,
Java Web Services Orca Knowledge Center – Web Service key concepts.
Sabri Kızanlık Ural Emekçi
WEB SERVICES.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Data Modeling II XML Schema & JAXB Marc Dumontier May 4, 2004
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
New Perspectives on XML
Presentation transcript:

WSDL and Schemas Discussion CMIS F2F January 27, 2009 Gary Gershon

Initial Review of SOAP Artifacts The 0.5 Schemas and WSDL artifacts are substantial working assets going into the OASIS TC process. From an initial review, various definition aspects were identified that: – Require change for broader tooling compatibility, – May hit platform implementation limitations, – Offer opportunities for simplification, and/or – Could be made more consistent. 1/27/092CMIS WSDL and Schemas

Tooling Obviously, the WSDL and Schema artifacts have been successfully consumed in multiple SOAP (SOA-Lite) environments for the prototype integration. However, they are not currently consumable by IBM’s WebSphere SOA platform tooling – WebSphere Integration Developer (WID) We need to arrange for tests using other SOA orchestration (BPM/BPEL) and ESB tools 1/27/093CMIS WSDL and Schemas

WebSphere Issues WebSphere’s WID product does holistic cross- schema and cross-WSDL analysis of all the artifacts in a project space. A particular schema element cannot be defined more than once in the same namespace. This behavior is consistent with best practices for SOAP. 1/27/094CMIS WSDL and Schemas

Duplicate-Definitions Solution Commonly solved by: – Using a separate namespace per Schema/WSDL file – Defining elements that are used in multiple services once and importing their definitions were needed Note that this issue is not restricted to WID. Standard Service Data Objects (SDOs) generate a factory class per artifact file using the namespace to define both the factory package and factory name. Having multiple schema files with the same namespace is a major problem with SDOs. 1/27/095CMIS WSDL and Schemas

Platform Adoption Issues Various vendor stacks absorb standards at different times. While MTOM has been available for several years as a potential replacement for SWA and DIME, it was only adopted for WebSphere Application Server (WAS) last year, and is not yet directly supported by WebSphere Process Server (WPS) or WebSphere ESB (WESB). Thus, MTOM is currently supported within the IBM stack for Point-to-Point services (SOA-Lite), but not for full mediated (ESB) or orchestrated (BPM/BPEL) SOA environments. 1/27/096CMIS WSDL and Schemas

MTOM Solutions One can develop an SOA SCA “Adapter” component for WESB that parses and assembles MTOM streams. CMIS could support multiple mechanisms to transfer the “content stream” via SOAP: – xsd:binhex64 – base-64 inline encoding of content within XML – Content-stream representation in SOAP message as a URL to a (temporary) persistence store 1/27/097CMIS WSDL and Schemas

Content Stream via binhex64 An Schema definition type of xsd:binhex64 will encode a byte array using base-64 character encoding Not as efficient as MTOM for large files Usually a good choice for small files since the content doesn’t need to be written to a temporary file and accessed later from secondary storage when needed 1/27/098CMIS WSDL and Schemas

Content Steams via URL (within SOAP) Supporting a URL reference within the SOAP message is a powerful option – It allows the message to be very small. – It provides a crisp transformed-message option when stripping off the MTOM attachments. – It is consistent with HTML/XHTML whereby all content files are referenced by URLs within XML. – It is consistent with WebDAV where various methods (e.g. PROPFIND) return XML including document URLs URLs within SOAP should be available for both sets and gets of Content Streams. 1/27/099CMIS WSDL and Schemas

A Content Stream Side-Issue The name “Content Stream” is an overload of the C/Java/.Net/Unix concept of a “stream” Most developers expect a stream object to support APIs like read, write, close, mark/reset Could we call the bytes simply “Content” and have CMIS services support “getContent” and “setContent” operations? Then a program could open a stream on the Content to process the document, and we could refer to the ContentSize and the ContentType… 1/27/09CMIS WSDL and Schemas10

Other WSDL Issues If other transports beyond HTTP are to be eventually supported, then each WSDL file should be split into two files: – Base file with interface – Transport binding file for each protocol (e.g. one for HTTP and another for JMS) – The binding file references the first file (includes). – As new protocols are added, the first file containing the interface definition does not change. 1/27/0911CMIS WSDL and Schemas

Schema Issues Too many modeled faults Opportunity to simplify properties Recommend against use of “qualified” Opportunity for collections of objects Naming- and construction-consistency opportunities 1/27/0912CMIS WSDL and Schemas

Fault Simplification Modeled WSDL (SOAP) faults were designed to provide a mechanism to return specific structured data elements to the invoker. There is no need to have multiple faults returning the same structure. Major persistence and messaging frameworks have only one primary Exception (Fault) message, such as SQL, MQ, etc. Recommend adopting a single ContentManagement fault to replace the current multiple faults. This new fault would contain a “type code” to indicate the cause. This would substantially simplify consumer programming by reducing the number of “catch” structures for these faults. The 0.5 draft calls these “Exceptions” – but they are actually SOAP or WSDL “Faults” (which perhaps resulted from a.NET or Java Exception). 1/27/0913CMIS WSDL and Schemas

Properties Opportunities Properties – Simplify duplicate strongly typed elements. – Eliminate (apparently) redundant sequencing index attribute. – Eliminate confusing multiple-typed Value element. – Need to clarify when strong-typing is required or is simply optional. – Eliminate duplicate cmisPropertyType attribute when element name is already strongly typed – Define additional standard optional properties (MD5) 1/27/0914CMIS WSDL and Schemas

Property Definition Example 0.5 <xs:attribute ref="cmis:propertyType" use="optional" default="boolean" /> <xs:attribute ref="cmis:propertyType" use="optional" default="integer" /> 1/27/09CMIS WSDL and Schemas15

Can we simplify all this? Simplified XSD: Example: /27/09CMIS WSDL and Schemas16

Qualified in XSD Specifying elementFormDefault="qualified” causes all message elements to be prefixed with a namespace id “ vs. This adds substantial bulk to the messages and reduces readability. There are various academic arguments for prefixing every element, but few practical examples. By observation, the WebSphere integration tools do not use qualified elements by default, nor do they provide an UI option to turn on qualified. 1/27/0917CMIS WSDL and Schemas

Collections of Objects Using collections as service arguments avoids repetitious service requests. Generally implementing collections is a simple programming task to perform iterations. Recommend we support more collections of request arguments to support batches of objects being stored or retrieved via capture systems or as parts of compound documents (e.g. setContent operation with multiple independent Content Streams) Enlarged unit-of-work semantics would need to be discussed. 1/27/0918CMIS WSDL and Schemas

Consistency Opportunities Files and enumerations do not use upper-, lower-, and upper/lower camel-case and separators (dashes) consistently Schemas do not make consistent (or effective) use of default values (e.g. minOccurs=1 and maxOccurs=1) We should revisit “nillable” to see if usages are appropriate given the added complexity: – <xs:element name="filter" type="xs:string" minOccurs="0" – maxOccurs="1" nillable="true" /> – Here filter is an optional XML element. Do we actually need to differentiate an empty string value from filter having a “null” value : since the entire element can be omitted if not needed. 1/27/0919CMIS WSDL and Schemas

Next Steps Have discussions to better understand considerations used in original 0.5 spec. Need small WSDL and Schemas working group to provide recommendations for the larger TC committee. 1/27/0920CMIS WSDL and Schemas