This is a 200 level technical deck on the capabilities of Service Bus
To set some context, first broaden the scope outside of service bus and look at the domain that it is part of – which is all about system integration, service bus provides the messaging infrastructure for these solutions to be created and it is one of a number of capabilities of the platform that would be used (note: a number of other key capabilities are in development but not in preview at this time – EAI/EDI and Workflow)
Again to help set the context of the key capabilities use din the platform to create integration solutions…The reason Web Services and Workflow are highlighted is that these capabilities are where in the solution you actually create your business logic that surrounds the integration solution itself. The code/wF that you write here – coordinate the work that needs to take place between systems and this is where you process interacts with the messaging infrastructure.
Easily Connect ApplicationsService Bus Messaging provides out-of-the-box support for various messaging patterns that enable to easily connect applicationsQueues offer a reliable, durable, and highly scalable way to store messages as they travel between systems without losing messages in case connectivity fails, one of the systems is down or is a mobile device with limited connectivity. Queues support multiple senders as well as multiple receivers with automatic load balancing.Topics and Subscriptions implement a publish/subscribe pattern that delivers a highly scalable, flexible, and cost-effective way to publish messages from an application and deliver them to multiple subscribers.Broadcast a message to hundreds or thousands of subscribers on a given Topic.Distribute messages to individual subscribers or groups of Topic subscribers using message property based filtering rules.Advanced messaging features provide a variety of options for delivery assurance and performance tuning:Local TransactionsDe-duplicationScheduled deliveryDelivery confirmation (peek-lock)Delivery deferralClient-side pre-fetchBatched Send/Receive Connect Applications From AnywhereService Bus enables connecting applications that are distributed across public cloud as well as hybrid environments, and various platforms, in a loosely coupled mannerEnables connecting application across public cloud, public cloud and private cloud, and private cloud to private cloud through public cloud.Client applications can be running on PCs, mobile devices or in the browser. Service Bus Relay enables applications to securely call into private cloud applications hosted in your own datacenter behind firewalls and NATsEnterprises can use a SOA-based architecture and expose just the services they want to deliver from their private cloud environment which creates a more secure architecture than opening up a VPN.Supports various programing languages and platforms: .NET, WCF, REST, Java (Coming soon: Node.js, PHP)Supports a variety of different transport protocols and Web services standards, including REST, SOAP, and WS-*.One-way messaging between sender and listener supports unicast and multicast.Full-duplex connection-oriented sessions between sender and listener support bi-directional communication.Services discoverable through a stable, internet-accessible URL, regardless of location. Enterprise Grade Cloud ServiceManaged service operated by Microsoft with 99.9% monthly SLA. Service Bus takes care of delivery assurance, reliable messaging, scale and load balancing.Claim based security using the Windows Azure Access Control service supports identity federation with Active Directory as well as common web identity providers like Google, Yahoo and Facebook.Cloud hosted service relay and brokered messaging capabilities can be leveraged directly from anywhere without the need for IT to change network configuration or install gateway agents/devices.
An overview slide that covers the THREE main capabilities of SB and an example scenario of where this might be used. Sometimes you might only need this slide to explain, or just use it as a simple t-up slide before you go into the details of how each of these capabilities works at a high level.
Although integrating systems is a key reason you would use service bus, it is also used within applications to decouple parts of the applications so that you can provide built in resilience and mechanism to scale your applications easily. These slides illustrate both these principles starting with resilience.In normal systems, components are tightly coupled which means that if any one of them fails, the whole thing fails and creates bad user experiences.
By loosely coupling back and front ends of an application and shifting the application architecture to process transactions differently, the front end can send shipping requests first to a queue. Once on the queue, the store front end can send an acknowledgement to the user confirming the order. The assumption is that the order will get shipped. If there is some downstream problem, the system will have to communicate back to the user outside of the order transaction (for example – maybe the requested shipping date was not available).The Shipping service get’s orders from the queue in this architecture, it is not being SENT orders from the store front end. When the shipping service is working correctly – it just continues to get orders from the queue. If for some reason the Store Front end fails and there is a backlog of orders on the queue, the shippping service can still work. Likewise, if the shipping service is down, the store front end can still take orders.
In this example we show that the shipping service can itself consist of multiple instances of worker processes that are pulling orders from the order queue. Each process will just pull one order, the queue guarantees order as well as ensuring that only 1 message is delivered to one instance of the tracking service. In this way, if you have many orders coming in, it is easy to add more worker instances to process these orders.
This is a simple animation that shows the basic mechanics of a queue. We have publishers and consumers. Using a simple API, a publisher creates a message that contains message properties and data. These messages are created by the publisher and there does need to be some agreement between publishers and consumers on what the message properties and content are so that each understands how to handle the data in the messages.The Queue itself does not PULL and it DOES NOT push data – it is simply a store for the messages and ensures the right ordered delivery of the messages for consumers who ASK for a message.The typical pattern for consumers is to run in a loop, polling for messages from the queue.
Topics are in essence, just more complex queues. We have the same publisher and consumer model. The difference is that with topics, you create one or more subscriptions which themselves can have rules that will only select certain messages sent to the topic. Publishers send to the Topic, but Consumers receive from one or more subscriptions. The Rules are applied (using the Service Bus API – there is no tooling/UI for this (Yet)) to subscriptions which affect which messages get to that subscription. The animation shows that you can actually set rules up after messages are already waiting at the subscription causing the subscription to have different messages that the subscription rule would indicate.
Queues and Topics are all about messaging. The other main capability SB provides is the Relay that provides a mechanism to enable Cloud Applications to communicate with on-premise web services and applications. Traditionally, you would have to open up security firewalls to allow web service calls into on-premise systems. Using the SB relay, essentially an abstraction layer, enables the SB Relay to broker the communication between the calling client and the on-premise systems.
This slide is just a little bit more detail about how this actually works. What happens is that the on-premise web service (that itself will call into other on-premise systems), needs to be registered with the SB relay and to use the specific SB Relay channel/protocol (all WCF magic). When this happens, the internal web service will now listen for requests to it on the SB Relay endpoint, not on the internal network (it can actually do both if you bind multiple protocols to the service).When a client calls the SB Relay endpoint, SB relays this call down to the actually service which then executes the request and returns the result up back through the Relay and back to the calling client.
This slide calls out specific SB improvements/enhancements for the June release. As you can see there are just a few capabilities shipping.
See following Press Release for details:--News & MoreAll newsPress Rel. BEDIN Shop Systems / Microsoft February 28, 2011 BEDIN Shop Systems’ Point-of-Sale and In-Store Software-as-a-Service on theWindows Azure Platform Gains European Retail Market Momentum aKite® delivers advanced “Connected Retail” solutions on Microsoft’s platform up in the cloudEUROSHOP/DUSSELDORF – 01 March 2011 – BEDIN Shop Systems today announced that the Windows Azure-based aKite® Vers.2.0 software services suite has gained significant customer acceptance as European retailers have increasingly realized the benefits of cloud computing. New customers include mobile phone distribution chains in Italy, as well as Italian retailers Bricocenter, Bruel and luxury brand Jennifer Tattanelli. aKite momentum has been building since the vers. 2 introduction on 11 July 2010 at Microsoft’s Worldwide Partner Conference 2010 in Washington, D.C.BEDIN Shop Systems smart clients are light Internet-centric desktop applications deployed from a Web page and automatically updated from Retail Web Services®, the intelligent ”hub in the cloud” designed as a Service-Oriented Architecture (SOA) for straightforward cooperation inside and outside a retail store chain. POS.net® is the front-store smart client that allows connected and disconnected operations, while back-store SHOP.net® Vers. 2.0 includes stock and suppliers management when this activity is not performed by headquarters but instead by store managers, as in the case of franchises. “Rapid customer acceptance of BEDIN aKite solutions for retailers provides an excellent example of Microsoft cloud momentum in the retail industry. Through alliances with retail solutions vendors such as BEDIN, we are creating a new and transformative paradigm for IT and business through our Windows Azure platform – enabling retailers to quickly evolve to become ‘connected retailers’ by providing capabilities that enhance the connection between retailers and their customers, provide the critical connection needed between retailers and their suppliers, while greatly improving internal collaboration from the desktop to the datacenter, and into the cloud,” said Simon Witts, corporate vice president, Enterprise & Partner Group (EPG), Microsoft Corp.Another important new feature of BEDIN’s cloud-based retail stores services suite is aDI , aKite® Document Interchange, a software service based on the Windows Azure platform AppFabric Service Bus that greatly simplifies integration with legacy ERPs and other on-premises systems such as aKite® DWH, a Microsoft SQL Server for custom business intelligency (BI) updated in near-real-time from all stores. One of the unique features of the AppFabric Service Bus is lack of any system activity or firewall parameterization, without any compromise on security, ensuring simple and fast deployment.“The Windows Azure platform allows us to deliver a very high SLA and at the same time concentrate our efforts on what we have done best from more than 20 years: design software tools that help retailers to manage and optimize their business. Microsoft brings together the breadth of consumer and enterprise cloud capabilities in conjunction with a familiar technology and productivity platform to provide our retail industry customers with the IT flexibility and choice they need to run their businesses and compete in today’s global economy,” said DavideBedin, BEDIN Shop Systems CTO. BEDIN Customers Embrace Cloud ComputingAs distinguished from Infrastructure-as-a-Service (IaaS), an advanced Platform-as-a-Service (PaaS) such as the Windows Azure platform performs automatically a wide range of complex system tasks including instant scalability, load balancing, fault tolerance, disaster recovery and software upgrades without any service interruption. A number of European retailers are now realizing the benefits of the advanced cloud-based approach to operations management provided by aKiteVers. 2.0. on Windows Azure.Mobile phone retail distribution in Italy is mainly based on small regional chains franchised to the leading national and international operators. These smaller chains nevertheless face the same challenges as the larger chains: the need to keep headquarters constantly connected with stores and to maintain very tight control on operations, down to the level of the serial number of each mobile phone.aKite multitenant architecture takes full advantage from a modern PaaS such as Windows Azure and offers to small chains the high service level agreements (SLAs) and features expected only in much bigger organizations. Several local chains have already switched to aKite, getting higher performance at a lower cost compared to traditional departmental software.Bricocenter, part of the Adeo Group, is the largest DIY Chain in Italy. Giorgio Breno, the CIO, has been the first adopter of aKite Retail Web Services. The majority of franchisees manage only one – or, at most, a few – stores and their challenge is to reduce stock levels without compromising customer service. BEDIN Shop Systems recently moved to the cloud a warehouse optimization software that maximize the benefits of mutual goods exchanges among franchisees. The Windows Azure AppFabric Service Bus also has been invaluable in connecting legacy systems to the cloud where complex calculations and comparisons can be made to determine the best results.Bruel, an Italian shoe producer, was faced with the challenge of controlling its product sell-out from several multi-brand independent stores. The solution was an information system with near zero deployment cost and easy to use, but flexible enough to be used also for the entire store management and not only for their corners. aKite and Windows Azure delivered these essential features. As a result, highly secure sales data reaches headquarters in near-real-time through high-speed Internet access on consumer-level ADSL lines.Casini Firenze is a luxury retailer in the center of Florence run by the owner and creative director Jennifer Tattanelli. In addition to this flagship store, there are show rooms in USA and others are planned in Europe, Middle East and Asia. Its challenge was to implement an international stores system with all the features required to serve high-end customers cost-effectively based on an on-demand and per seat fee. aKite fit the bill and is integrated with Casini Firenze’s existing customer relationship management (CRM) through aDI (aKite Document Interchange) based on the Windows Azure AppFabric Service Bus. Based on the cloud and enabling centralized data, aKite allows Casini Firenze management to be in control from anywhere in the world.