Canon EOS-1D Mark II, wow!

Check this out.

Pre-PMA 2004: Canon today announced the impressively specified EOS-1D Mark II which features a new 8.2 megapixel CMOS sensor, it can shoot at just over eight frames per second and has a 40 frame JPEG image buffer (20 frames in RAW mode). This means that shooting at full resolution at full speed the camera is buffering 69 megapixels per second (or 100 MB/sec). Other changes include the addition of a USB port, an SD slot, the removal of the external white balance sensor as well as some subtle body styling changes. More …

Web Services, XSD, WSDL and Versioning …

I’m working on a web service providing user application authorization information based on web service. The basic idea is to expose application authorization data through a web service and remove any need to implement similar functionality in each application and centralize the administration of user profiles and authorizations.

Like any other web services once deployed, all applications will be dependent on this basic user authorization services. It requires that the authorization service must offer backward compatibility and extensibility to support applications that live on their own life cyles.

A versioning strategy is shown in the following:

  • All types are defined in XSD and their namespaces are date-stamped. Ex.,
    <s:schema

          xmlns:s=“http://www.w3.org/2001/XMLSchema”

          targetNamespace=“http://tempuri.org/2004/02/16/types/”

          xmlns=“http://tempuri.org/2004/02/16/types/”

        >

         <s:complexType name=“User”>

           <s:sequence>

                  <s:element name=“FirstName” type=“s:string”/>

                  <s:element name=“LastName” type=“s:string”/>

           </s:sequence>

         </s:complexType>

    </s:schema>
  • All WSDL are stored as files that reference the XSD for exposing types. Ex.,
    <definitions

        name=“UserAuthorizationService”

        targetNamespace=“http://tempuri.org/2004/02/16/UserAuthorizationService/”

        xmlns=“http://schemas.xmlsoap.org/wsdl/”

    >

        <import namespace=“http://tempuri.org/2004/02/16/types/”

         location=“UserAuthorization.xsd” />

        <types />

        <message />

       <portType />



       <!– concrete definitions –>

       <binding />

       <service />

    </definition>



  • When implementing web services, the binding is done with import of a particular WSDL such as http://localhost/2004/02/16/UserAuhtorizationService.wsdl, insetad of relying on ASP.NET auto-generated WSDL on an endpoint.
  • When the service interface changes, a new WSDL is created and a new endpoint is created as well for the new interface. Ex, these are two versions of the service with two distinct endpoints.
  • http://localhost/2004/02/16/UserAuthorizationService.wsdl and http://localhost/2004/02/16/UserAuthorization.asmx
  • http://localhost/2004/03/UserAuthorizationService.wsdl and http://localhost/2004/03/UserAuthorization.asmx
  • Here’re some related resources:
    Designing Application-Managed Authorization
    XML Versioning