in

mscommunity.net

Interactive mscommunity.net online activities

DamirDobric

listopad 2008 - Posts

  • BizTalk RFID 2009 BETA

    Today Microsoft has released production ready BETA version of BizTalk RFID 2009.

    The key features of BizTalk RFID 2009 include:

    ·         BizTalk RFID Mobile (RFID platform for Windows Mobile and Windows CE based devices)

    o   BizTalk RFID Mobile consists of a runtime engine, tools and components to develop, deploy and manage RFID solutions on mobile devices.

    o   Store and Forward: BizTalk RFID Mobile supports the ability to store events locally as well as forward them to the server.

    o   Remote Management: BizTalk RFID Mobile allows remote management of Windows Mobile-based devices.

    o   SQL Sink service: BizTalk RFID Mobile supports using a SQL database to store events and information on the mobile device, in much the same way that BizTalk Server RFID does.

    ·         Support for industry Standards

    o   LLRP Provider: Out-of-the-box connectivity with readers using the EPCglobal-ratified Low-Level Reader Protocol (LLRP) reader-host standard.

    o   TDT: Services to decode tag attributes natively via the Tag Data Translation (TDT) standards library

    o   WS Discovery: A library for providers to discover devices using the standard web services based discovery mechanism.

    ·         Support for newer platforms             

    o   Windows Server 2008

    o   SQL Server 2008

    o   .Net 3.5 SP1 and Visual Studio 2008

     

     

     

    Posted lis 27 2008, 11:31 by anonymous
    Filed under:
  • Windows AZURE: .NET services overview

     
    Access Control

    The Microsoft .NET Access Control Service provides an easy way to control web applications and services while integrating with standards-based identity providers, including enterprise directories and web identity systems such as Windows Live ID. Authorization decisions can be pulled out of the application and into a set of declarative rules that can transform incoming security claims into claims that applications understand.

    Service Bus

    The Microsoft .NET Service Bus makes it easy to connect applications together over the Internet. Services that register on the Bus can easily be discovered and accessed, across any network topology. The Service Bus provides the familiar Enterprise Service Bus application pattern, while helping to solve some of the hard issues that arise when implementing this pattern across network, security, and organizational boundaries, at Internet-scale.

    The Microsoft .NET Workflow Service is a high-scale host for running workflows in the cloud. It provides a set of activities optimized for sending, receiving, and manipulating HTTP and Service Bus messages; a set of hosted tools to deploy, manage and track the execution of workflow instances; and a set of management API’s. Workflows can be constructed using the familiar Visual Studio 2008 Workflow Designer.

  • Windows AZURE

    The Azure is the Windows operative system designed for “Cloud”.  It is a scalable platform
    which provide support for: Live Services, .NET services, SQL Services, SharePoint Services and  Dynamics CRM Services.

    If provides a life cycle management of services and applications in the cloud. It is important that Azure does not only manage server. Moreover it also manages services.

  • WS-Discovery: Messaging enhancements in .NET 4.0:

    The goal of WS-Discovery protocol is to enable a client to search for one or more target services. For this reason WS-Discovery is specified as multicast discovery protocol. As I already announced one of message enhancements in .NET 4.0 will be support for WS-Discovery protocol. Note that this post is not about .NET 4.0, but about WS-Discovery.
    This protocol is very usefully when clients need to find services. The term service in this context can be a usual Web Service in SOA environment or even some hardware device. For example Windows Vista implements WS-Discovery to support the Device Profile for Web Services (DPWS). DPWS provides standards-based connectivity to network devices including printers, RFID readers, wireless cameras, projectors, and more. The DPWS lightweight protocol fits into small devices and enables a new wave of experiences with across-the-Internet connectivity between devices, PCs and Web services. Web Services on devices allows devices and PCs to connect to each other across the Internet, even as they roam and change IP addresses.

    WS-Discovery specification assumes DISCOVERY_PORT 3702 [IANA], IPv4 multicast address: 239.255.255.250 and IPv6 multicast address: FF02::C (link-local scope).

    Discovery Model

    Note that all messages are sent over SOAP/UDP protocol. Here are four different scenarios defined by WS-Discovery specification, which corresponds to the model shown below.

    (a) When a target service joins the network, it sends an announcement message (1) to the same multicast group. By listening to this multicast group, clients can detect newly-available target services without repeated probing. This reduces network traffic, because clients doe not have to send pooling requests to find the target service.

    (b) To find a target service by the type of the service or by scope in which the target service resides (or both), a client sends a probe message (2) to a multicast group. Service(s) which matches the probe sends the response called Probe Match (3) to the client directly.

    (c)The client can also try to find the service by its name. In this case client should send the resolve message (4) to the multicast group. Response to this message is called resolve match (5).

    (d) Additionally WS-Discovery specification defines multicast suppression behavior. This is when a proxy called discovery proxy is available on the network. When a discovery proxy detects a probe [resolution message - (b)] , the discovery proxy sends an announcement for itself. By listening for these announcements, clients detect discovery proxies and switch in multicast suppression behavior (use a discovery proxy-specific protocol). If a discovery proxy is unresponsive for some reason, clients revert from this mode.

    (e) When the service lives the network it sends the Bye message (6).

    Note that WS-Discovery protocol does not provide any information about liveness of the target service.

     

    image 

    Here is one example which uses Probe request (2) and Probe Match response (3).

    Probe Message

    Following message is an example of querying for the printer-service. Note that this request does not contain ReplyTo-tag (see in this post for one example of WS-Addressing). Because of that the reply message will be an UDP-packet according to SOAP/UDP, which is also a part of .NET 4.0.

    <s:Envelope
    xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing"
    xmlns:d="http://schemas.xmlsoap.org/ws/2005/04/discovery"
    xmlns:i="http://printer.example.org/2003/imaging"
    xmlns:s="http://www.w3.org/2003/05/soap-envelope" >
    <s:Header>
        <a:Action>http://schemas.xmlsoap.org/ws/2005/04/discovery/Probe</a:Action>
        <a:MessageID>uuid:0a6dc791-2be6-4991-9af1-454778a1917a</a:MessageID>
        <a:To>urn:schemas-xmlsoap-org:ws:2005:04:discovery</a:To>
      </s:Header>
      <s:Body>
        <d:Probe>
          <d:Types>i:PrintBasic</d:Types>
          <d:Scopes MatchBy="http://schemas.xmlsoap.org/ws/2005/04/discovery/ldap">        
           ldap:///ou=engineering,o=examplecom,c=us</d:Scopes
    >
        </d:Probe>
      </s:Body>
    </s:Envelope>

    The game between Type and Scope in this example illustrate the usage of these two terms. The client is locking for service of type PrintBasic in the specific group defined by LDAP.

    Probe Match

    The Probe Match response message is sent as response to the Probe Message. First of all this message contains the instance identifier of the service which responses the message.

    <s:Envelope
    xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing"
    xmlns:d="http://schemas.xmlsoap.org/ws/2005/04/discovery"
    xmlns:i="http://printer.example.org/2003/imaging"
    xmlns:s="http://www.w3.org/2003/05/soap-envelope" >
    <s:Header>
    <a:Action>http://schemas.xmlsoap.org/ws/2005/04/discovery/ProbeMatches</a:Action>
     <a:MessageID>uuid:e32e6863-ea5e-4ee4-997e-69539d1ff2cc</a:MessageID>
      <a:RelatesTo>uuid:0a6dc791-2be6-4991-9af1-454778a1917a</a:RelatesTo>
     
    <a:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:To>
        <d:AppSequence InstanceId="1077004800" MessageNumber="2" />
      </s:Header>
      <s:Body>
        <d:ProbeMatches>
        <d:ProbeMatch>
          <a:EndpointReference>
            <a:Address>uuid:98190dc2-0890-4ef8-ac9a-5940995e6119</a:Address>
            </a:EndpointReference>
              <d:Types>i:PrintBasic i:PrintAdvanced</d:Types>
          <s:Body>
            <d:ProbeMatches>
              <d:ProbeMatch>
                <a:EndpointReference>
                <a:Address>uuid:98190dc2-0890-4ef8-ac9a-5940995e6119
                  </a:Address>
                </a:EndpointReference>
                <d:Types>i:PrintBasic i:PrintAdvanced</d:Types>
                <d:Scopes>
                  ldap:///ou=engineering,o=examplecom,c=us
                  ldap:///ou=floor1,ou=b42,ou=anytown,o=examplecom,c=us
     
                 http://itdept/imaging/deployment/2004-12-04 
               </d:Scopes>
                 <d:XAddrs>http://prn-example/PRN42/b42-1668-a</d:XAddrs>
                 <d:MetadataVersion>75965</d:MetadataVersion>
              </d:ProbeMatch>
            </d:ProbeMatches>
          </s:Body>
        </s:Envelope>

     

    Discovery Proxy Model

    Following picture shows the message sequence by using of the discovery proxy. As shown at this sequence discovery proxy responses n behalf of services. Proxy timeout according to specification is set on 5 seconds.

     

    image

  • X509 Certificate Authentication fake

    Some people asked me some interesting question about authenticating of client at the service side but without of authenticating of service at the client side. Personally, I do not see why it should be important in the productive environment to avoid authentication of the service at the client side? I would find it pretty risky, because this feature prevents client of phishing (even if the service is in intranet=>quasi-trusted zone).

    Assuming that out there in universe there is some reason for this, I build an example which shows how to do this. First of all take a look on following service configuration, which shows how to enforce service to send the certificate to the client. Additionally this configuration verifies the client's certificate is in the TrustedPeople certificate store or by building a certificate trust chain.

     image

    PeereORChainTrust is setup for validation of the client's certificate. ServiceCertificate node is the certificate which will be sent by service to the client. This certificate protects the client form phishing.

    Analog to service the client configuration which sends the client's specific certificate and authenticates the service looks like:

    image

    Then following class should be implemented, which provides a custom certificate authentication. The class should be
    implemented at the client's side. Return means all service certificates are by default valid.

      public class CustomX509CertificateValidator : X509CertificateValidator    {

    // This Validation function accepts any X509 Certificate
    public override void Validate(X509Certificate2 certificate)
    {
          return;
    }
    }

    Last but not least, change the client's configuration to use CustomX509CertificateValidator as shown at the picture below:

      <behaviors>
          <endpointBehaviors>
            <behavior name="ClientCertificateBehavior">
              <clientCredentials>        
               
    <clientCertificate findValue="localhost" storeLocation="LocalMachine"
                                   storeName="My" x509FindType="FindBySubjectName" />           
     
                <serviceCertificate>
     
                  <authentication certificateValidationMode="Custom"                            
     
                        customCertificateValidatorType
    =
                       
    "Microsoft.ServiceModel.Samples.CustomX509CertificateValidator, service" />

                </serviceCertificate>
              </clientCredentials>
            </behavior>
          </endpointBehaviors>
        </behaviors>

     

    Related posts:

    http://developers.de/blogs/damir_dobric/archive/2006/10/01/935.aspx
    http://developers.de/blogs/damir_dobric/archive/2006/09/24/931.aspx

     

     

    Code hidden in pictures:

    configuration for first picture:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>

      <system.serviceModel>
        <services>
          <service name="Microsoft.ServiceModel.Samples.CalculatorService"
                   behaviorConfiguration="CalculatorServiceBehavior">
            <!-- use host/baseAddresses to configure base address provided by host -->
            <host>
              <baseAddresses>
                <add baseAddress ="
    http://localhost:8001/servicemodelsamples/service" />
              </baseAddresses>
            </host>
            <!-- use base address specified above, provide one endpoint -->
            <endpoint address="certificate"
                      binding="wsHttpBinding"
                      bindingConfiguration="Binding"
                      contract="Microsoft.ServiceModel.Samples.ICalculator" />
          </service>
        </services>

        <bindings>
          <wsHttpBinding>
                  <binding name="Binding">
              <security mode="Message">
                <message clientCredentialType="Certificate" />
              </security>
            </binding>
          </wsHttpBinding>
        </bindings>

        <behaviors>
          <serviceBehaviors>
            <behavior name="CalculatorServiceBehavior">
              <serviceDebug includeExceptionDetailInFaults ="true"/>
              <serviceCredentials>
                <!--
                The serviceCredentials behavior allows one to specify authentication constraints on client certificates.
                -->
                <clientCertificate>
                             <authentication certificateValidationMode="PeerOrChainTrust" />
                </clientCertificate>
                          <serviceCertificate findValue="localhost" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />
              </serviceCredentials>
            </behavior>
          </serviceBehaviors>
        </behaviors>
      </system.serviceModel>

    </configuration>

     

    Configuration for second picture:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.serviceModel>

        <client>
          <!-- X509 certificate based endpoint -->
          <endpoint name="Certificate"
                    address="
    http://localhost:8001/servicemodelsamples/service/certificate"
                    binding="wsHttpBinding"
                    bindingConfiguration="Binding"
                    behaviorConfiguration="ClientCertificateBehavior"
                    contract="Microsoft.ServiceModel.Samples.ICalculator">
          </endpoint>
        </client>

        <bindings>
              <wsHttpBinding>
            <!-- X509 certificate binding -->
            <binding name="Binding">
              <security mode="Message">
                <message clientCredentialType="Certificate" />
              </security>
            </binding>
              </wsHttpBinding>
          </bindings>
        <behaviors>
          <endpointBehaviors>
            <behavior name="ClientCertificateBehavior">
              <clientCredentials>
                <clientCertificate findValue="localhost" storeLocation="LocalMachine"
                                   storeName="My" x509FindType="FindBySubjectName" />           
                <serviceCertificate>
                  <authentication certificateValidationMode="PeerOrChainTrust" />
                </serviceCertificate>
              </clientCredentials>
            </behavior>
          </endpointBehaviors>
        </behaviors>

      </system.serviceModel>

    </configuration>

  • Mrs Globe Belgium

    This time it is not about technic, but I just have post it. It doesn't happen every day that my cosine won Mrs Belgium.
    I always have been proud on strongly focused intellectual directions of my family. However there are obviously few very nice and surprising outsiders.

    My congratulations Seka.

    http://www.sekadobric.com/

    http://www.man-oeuvre.be/index.php/2008/09/12/seka-dobric-viert-terugkomst-mrs-globe-2008-moorea-wielsbeke/

  • Building BizTalk RFID 2009 Event Handlers

    This post is related for everybody out there who use event handlers and/or DSPI-s build on the old version of event handler (or.and dspi)project template (s). These could be for example developers who used project templates provide by DAENET in the last two years.

    After installing of new bits of BTS RFID, you may notice that current project do not build on the new stack. To work around this problem do following:

    1. Remove all references to Rfid.* and Microsoft.Rfid.*.

    2. Go to project properties and add change the target platform to .NET 3.0

    3. Add all required BTS.RFID references. For example: Microsoft.Rfid.Design.dll, Microsoft.Rfid.SpiSdk.dll amd Microsoft.Rfid.Util.Dll.

    4. Rebuild the project

    That should be all.

    Posted lis 11 2008, 11:20 by anonymous
    Filed under:
  • Error while Installing BizTalk RFID Mobile

    While installing BizTalk RFID Mobile the setup may fail with following exception:

    "Installation of "biztalkrfidmobile.enu.wm.armv4i.cab" or "biztalkrfidmobile.enu.wce5.armv4i.cab" was unsuccessful."

    After you see this error message, you will probably be lost in space, looking for some reason. The good news is that setup running behind CAB-file will create the log file BizTalkRFID.Log.txt in the root folder of device as shown at the next picture:

    image

     

    Open this file and look for the error message. Here is one example:

    ERROR : Microsoft SQL Server Compact Edition 3.5 was not found. Install Microsoft SQL Server Compact Edition 3.5.

    To solve this specific problem it was necessary to install SQL CE 3.5 on classic 6.0 emulator: sqlce.dev.ENU.phone.wce5.armv4i.cab

  • What is new in .NET 4.0?

    The new version of .NET framework 4.0 should provide set of new features to target market demands of the near future. Some of these demands have been described in the "Magic Quadrant" post. And here is the list of features which targets connecting systems scenarios only:

    WCF 4.0

    RESTful enhancements

    · Simplifying the building of REST Singleton & Collection Services, ATOM Feed and Publishing Protocol Services, and HTTP Plain XML Services using WCF

    · WCF REST Starter Kit to be released on Codeplex to get early feedback

    Messaging enhancements

    · Transports - UDP, MQ, Local in-process

    · Protocols - SOAP over UDP, WS-Discovery, WS-BusinessActivity, WS-I BP 1.2

    · Duplex durable messaging

    Correlation enhancements

    · Content and context driven, One-way support

    Declarative Workflow Services

    · Seamless integration between WF and WCF and unified XAML model

    · Build entire application in XAML, from presentation to data to services to workflow

     

    Workflow Foundation 4.0

    Significant improvements in performance and scalability

    · Ten-fold improvement in performance

    New workflow flow-control models and pre-built activities

    · Flowcharts, rules

    · Expanded built-in activities – PowerShell, database, messaging, etc.

    Enhancements in workflow modeling

    · Persistence control, transaction flow, compensation support, data binding and scoping

    · Rules composable and seamlessly integrated with workflow engine

    Updated visual designer

    · Easier to use by end-users

    · Easier to rehost by ISVs

    Ability to debug XAML

     

    Application Server (Dublin)

    Provide standard host for WF and WCF applications

    - First CTP will be provided on PDC. The community feedback will influence the RTM.

    - Application Server “Dublin” will first become available after the release of the .NET Framework 4.0 and Visual Studio “10”.

    - Application Server “Dublin” will initially be made available for download and use by Windows Server customers; later, “Dublin” will be included in future releases of Windows Server.

    - Application Server “Dublin” will extend Internet Information Services (IIS) to provide a standard host for applications that use workflow or communications.

    - It will provide support for Oslo modeling platform.

    - It will support existing .NET apps.

    - It will support integration with BizTalk Server (in this context called "Integration Server").

    Pre-built developer services

    · Message-based correlation

    · Message forwarding service

    · Content-based message routing

    · Compensation service for long-running transactions

    Greater scalability and easier manageability

    · Enable scale-out of stateful workflow applications

    · Persisting and rehydrating state for high scalability

    · Enhanced management and monitoring functions

    · Tracking store for workflow events

    Supports “Oslo” modeling platform

    - More about this at PDC :)

  • The Magic Quadrant

    An Application Enterprise Server is a server, system, or better the middle-ware which acts as a container for applications' business logic. Windows Server seems to be with .NET Framework and Visual Studio the most comprehensive framework and developer tool suite in the industry. The need EAS strategy and the role of Windows Server platform has been recognized by Gartner. For more information see Magic Quadrant article.

    Today we (more or less) adopt SOA principles by using the full spectrum of web services as part of our applications. We do this mostly ranging from simple RESTful services introduced in .net 3.5 to more advanced web services utilizing WS-* standards. However, as we are trying to reuse services, there is a demand to create composite applications. Such applications are much more complex to develop and to deploy. Moreover they present more challenges around scalability, performance an reliability.

    Targeting market demands described by quadrant-article above Microsoft is build a set "solutions" (products, platform, tool etc) which will be presented at the PDC this year in LA.

    Most of this is already known under code names "Cloud" (cloud computing or biztalk services) and "Oslo" (modeling platform). We should think about "Oslo" and the "Cloud" as being two sides of the same coin. Oslo should be all about modeling and "Cloud" should be the required runtime.

    More about this after PDC. Anyhow, here is one interesting article.

  • BizTalk RFID for mobile devices

    Few days ago Microsoft released BizTalk RFID for mobile devices Release Candidate. This stack has been build on the almost same architecture which has been used in BizTalk Server 2006 R2.

    The main difference between BizTalk Server 2006 R2 and BizTalk RFID Mobile is that the BizTalk RFID Mobile platform does not have a separate service to interact with a device. This is reasonable, because mobile stack does not have a support for service infrastructure.

    Instead, the entire RFID stack is loaded directly in the client's application process. This means that in BTS R2 DSPI providers are hosted either in RFID service process or in the corresponding w3wp process of IIS (depending on installation desktop or server). In opposite to R2, mobile stack hosts DSPI in the application process itself.

    Following features are not available on the mobile stack:

    • No support for Device groups. The number of devices managed on a handheld device is usually small, and therefore device groups are not necessary.
    • No support for Device security. There is no notion of security against multiple users on a device.
    • No support for Device versioning. Enterprises often have standard scan and alert mechanisms for checking configuration of the device. Therefore, device versioning is not necessary.

    Mobile stack provides event subscriptions. That means, mobile application can receive notification events by subscribing to the event. This is done by using the Windows CE DeviceConnection interface.

     

    TAP users and core partners can download the bits here: https://connect.microsoft.com/site/sitehome.aspx?SiteID=65&wa=wsignin1.0.

Powered by Community Server (Commercial Edition), by Telligent Systems