Tools for Creating Message Schemas
Updated: November 18, 2014
In the previous topics, we saw that rich messaging endpoints provide connectivity to different protocols and applications (see Using the BizTalk Adapter Service (BAS)), and provide message-processing capabilities such as validation, transformation, extraction, and enrichment on the cloud (see What are Bridges?). However, neither of these can be used in isolation and ‘tie up’ with other Service Bus entities on the cloud (like topics, queues, and so on) to provide an end-to-end message flow. For example, you could have a scenario where the a client sends a request message that needs to be processed on the cloud, routed to a queue, and then eventually inserted into a SQL Server database. To configure this scenario, you need to use an XML bridge, a Service Bus queue, followed by BizTalk Adapter Service in a sequence. This presents a need for a design surface where you could stitch different components of a message flow together. BizTalk Services provides a design surface called BizTalk Service project that helps you achieve this. The BizTalk Service project design surface is available as a Visual Studio project type and is installed with BizTalk Services SDK. For more information about the BizTalk Service project, see Get started with a Visual Studio project. To set up a BizTalk Service project, see the topics under Get started with a Visual Studio project and Configuring Components of a Message Flow.
Securing the BizTalk Service Project
In the current Service Bus security model, access to the Service Bus entities is controlled via Access Control Service (http://go.microsoft.com/fwlink/?LinkId=225149). A valid Access Control token must be presented in order to create and manage entities on the Service Bus. In most cases, a client sending a message to a Service Bus entity must also present a valid Access Control token which is then used for authentication, the only known exception being relay endpoints that allow a client to be unauthenticated and handle the authentication and authorization on their own, typically using message security. Also, the Service Bus does not propagate either the Access Control token or the claims received on the messages.
A BizTalk Service project spanning multiple Service Bus entities is a message-mediation intermediary that sits between the clients and the services. As such, a BizTalk Service project may be employed either by the service (in which case it mediates the receipt of messages sent by clients) or by a client (to mediate the messages before they are sent to service). In either case, effectively, the systems or applications employing the Service Bus tend to be distributed with one of the parts being on the Service Bus and others being outside the Service Bus, either on cloud or on premises. Hence, the distributed nature of these applications has implications on how authentication and authorization happens in various parts of the system in different scenarios.
For the current milestone, all the entities that are part of a BizTalk Service project must belong to the same Service Bus namespace. Hence, the authentication of a message flow happens only at the entry point of the flow and all entities in a message flow are considered to be within the same security and trust boundary. While deploying a message flow, you only need to provide the credentials (Issuer Name and Issuer Key) for the Service Bus namespace. For instructions on how to use a Bridge Configuration to configure rich messaging endpoints, see Create the project in Visual Studio.
Tools That Aid Application Development
BizTalk Services provides the following tools that help in developing BizTalk Service projects:
Schema Editor. The Schema Editor enables you to create and edit schemas using a schema tree view instead of hand-editing the entire schema file. You can use the Schema Editor to create/edit XML as well as flat-file schemas.
Service Consuming Wizard. When you use the BizTalk Service project to route a message from a bridge to an external WCF service, you must have the schema of the service added to your project as well. The Service Consuming Wizard enables you to generate the schema of a WCF service and add it to your BizTalk Service project. Once the schema is available as part of the project, you can use a transform to map the schema of the incoming message to the schema of the message expected by the service.
In This Section