SlideShare uma empresa Scribd logo
1 de 61
Building Scalable and Robust
Solutions with Service Bus in Cloud
and Server
Clemens Vasters (@clemensv)
Principal Technical Lead / Architect
Windows Azure Application Platform Team – Service Bus
Appliances             Phones & Tablets      PC                         SaaS Cloud app




                                                                   
             Queues         Topics        Relays              Notifications




                                            Team SharePoint
LOB Apps              Event Aggregator      site                       ....
*cloud-only for now **cloud-only for the forseeable future
• Building cloud services



• Enable Hybrid configurations



• Connected client scenarios
XBox                                             Leaderboard               Game Stats

                                                   Devices                 Devices




XBox


       Gateway Role   Service Bus Queues   Halo Backend Role   Xbox Live


XBox




                            1.   Game scores fan-in to Queues
                            2.   Sessions used to correlate games
                            3.   Scheduled messages to track completion
XBox                        4.   Halo backend produces finalized stats
Retail Services ISV
POS




POS
                           Retail Web Services

      Service Bus Queues                            IT Admin


POS




                            Service Bus Topics      Marketing

                Sales data fan-in to Queues
                Messages processed and appropriate messages sent
                Topics used to support Publish-Subscribe for messages
POS             Real-time monitoring as well as decoupled inventory updates
Enterprise Services ISV
                                  Service Bus Relay

                                                             ISV
                                                             Suite

 Policy Updates      Remote
                   Management

                                                      Enterprise Private Cloud
             Central
            Repository




ISV Private Cloud               • ISV Suite offers a turn-key solution for security & management of
                                  BYOD
                                • Deployed on enterprise networks behind firewalls/NATs
                                • Uses Service Bus Relay to push policy updates/templates and
                                  perform remote management of the Suite
CRM Online
                       CRM Online
                         Service

Windows 8                               1.   Devices Authenticate with CRM
                                        2.   Registration sent to Notification Hub
                                        3.   Message initiated by CRM Online Service
                                        4.   Customized Notifications to all devices
                      Service Bus
                     Notification Hub


Win Phone 8


              WNS




                                        Filter w/ Tags   Broadcast   Scale   Templates
    iOS
              APNS
Apps


.NET WCF Service Model
                                              C/C++       Java/JMS
                                               (incl
                                             Embedded)                                    Node.j    Any
                                                                       Python    PHP
  NetMessagingBinding                                    Apache Qpid                         s     HTTP
                                                                        client   client
                                             Apache      JMS AMQP                         client   client
                                             Proton-C        1.0
        .NET Service Bus Messaging API

SB Messaging Protocol
                                         AMQP 1.0                                   HTTP(S)
 (net.tcp, proprietary)


                                          Service Bus
© JPMorgan Chase & Co.
Sender

   Replay Buffer




Idempotence Barrier


   Receiver
Service Bus Message
 Sys Properties
    Key                    Value
    Key                    Value
    Key                    Value

 Custom Properties
    Key                    Value
    Key                    Value
    Key                    Value
    Key                    Value

 Body
                    Body
                  (Bag of Bytes)
Broker
         Receive and Delete




Broker    1. Peek/Lock

          2. Delete/Unlock
Service Bus 1.0 for Windows
Server
Why & What
On-Premises pub-sub    •Enterprise applications developed and deployed on-premise.
Develop&
 Deploy                •Scale ; HA ; Manageability ; Rich messaging feature set
Develop On-premise     •High fidelity develop, test, debug experience
 Develop      Deploy   •DevBox deployment (HW&SF pre-reqs) ; Tools (VS); debug mode ;
                        symmetry
Flexible Deployment    •Driven by enterprise desire for deployment choice (or perception
 Deploy
              Deploy    thereof)
                       •Full symmetry ; Ease of migration
Tiered Deployment      •Maintain control of mission critical data / systems
  Data
              App      •Unable/unwilling to migrate legacy systems
                       •Gradual migration to cloud
                       •Message Federation ; Store-and-Forward
•   Clustered deployment
                           Node
•   Identical nodes               SB Gateway
                                                 SB Messaging
                                                   Backend      Message

•   Stateless gateways                                           Store


                           Node
                                                 SB Messaging   Message
                                  SB Gateway
                                                   Backend       Store



•   Backend                Node
                                                                Message
                                                                 Store
                                                 SB Messaging
                                  SB Gateway
                                                   Backend
                                                                Message
•   Databases                                                    Store




                                    Gateway DB
Windows Server 2008 R2 SP1
Windows Server 2012


SQL Server 2008 R2 SP1   SQL
Server 2012



Web PI-based
Hardware



Measured performance for flow rates
                    20,000 messages/s
                          14,200 messages/s
                              26 messages/s




Always able to get more by using faster machines.
Messaging Patterns
Queue
Queue
Queue
Sub
Topic   Sub
        Sub
Broker Message
 Properties



                 Reply Queue
                       Broker
                                      Broker Message
                         Send Queue    Properties




                                       Body
Broker Message
 Properties



                 Reply Queue


                                    Broker Message
                                     Properties




                       Broker
                       Send Queue

                                     Body




Broker Message   Reply Queue
 Properties
var sender = QueueClient.CreateFromConnectionString(cs, "test");
sender.Send(new BrokeredMessage
    {
        Label = "Hello"
    });

// Send a message with system and application properties set
var bm = new BrokeredMessage();
bm.Label = "PurchaseOrder123";
bm.TimeToLive = new TimeSpan(0, 5, 0);
bm.Properties["PurchaseOrderID"] = 1234;
sender.Send(bm);
var receiver1 = QueueClient.CreateFromConnectionString(cs, "test",
ReceiveMode.ReceiveAndDelete);
var msg1 = receiver1.Receive();


var receiver2 = QueueClient.CreateFromConnectionString(cs, "test",
ReceiveMode.PeekLock);
var msg2 = receiver2.Receive();
try
{
    // Process msg2
    msg2.Complete();
}
catch
{
    msg2.Abandon();
    throw;
}
<predicate ::=
                                      { NOT <predicate> }
                                     | <predicate> AND <predicate>
                                     | <predicate> OR <predicate>
                                     | <expression> { = | <> | != | > | >= | < | <= }
                                     <expression>
                                     | <property> IS [NOT] NULL
                                     | <expression> [NOT] IN ( <expression> [, ...n] )
                                     | <expression> [NOT] LIKE <pattern> [ESCAPE <escape_char>]
                                     | EXISTS ( <property> )
                                     | ( <predicate> )

                                     <expression> ::=
                                     <constant>
                                     | <property>
                                     | <expression> { + | - | * | / | % } <expression>
                                     | { + | - } <expression>
                                     | ( <expression> )


var filter = new SqlFilter("InvoiceTotal < 10000");
<statements> ::=
                                      <statement> [, ...n]
                                      | <action> [;]

                                      <action> ::=
                                      SET <property> = <expression>
                                      | REMOVE <property>

                                      <expression> ::=
                                      <literal>
                                      | <function> ::= newid()
                                      | <property>
                                      | <expression> { + | - | * | / | % } <expression>
                                      | { + | - } <expression>
                                      | ( <expression> )




var rule = new SqlRuleAction("SET FullName = FirstName + ' ' + LastName");
QueueDescription destinationQ = new QueueDescription("myQ2");
QueueDescription sourceQ = new QueueDescription("myQ1");
sourceQ.ForwardTo = "myQ2";

NamespaceManager nm = NamespaceManager.Create();
nm.CreateQueue(destinationQ);
nm.CreateQueue(sourceQ);
DeviceId = ‘123’ OR UserId = ‘clemensv’
                            OR Group IN (‘A’, ‘B’, ‘C’)
Group IN (‘A’, ‘B’,
  ‘C’, ‘D’, ‘E’)      DeviceId = ‘456’ OR UserId = ‘clemensv’
                            OR Group IN (‘A’, ‘B’, ‘C’)
HTTP                                         SBMP/AMQP
       HTTP
        1 Entity per Socket
        1 Pending Operation per Socket
        60s operation timeout (NAT/Prx)

       SBMP/AMQP
        Unlimited Multiplexed Entities and
        Unlimited Pending Ops per Socket
        No fixed operation timeout
        Session Support (coming in AMQP)
Browsers




                    Long Polling, Web Sockets, Server-Side Events, Forever-Frame
      Connections



Key   Value
                                                                              IMessageBus

                                                                    key1
                                                    Filtered        key2
                                                    Receive           …
                                                                    keyN
Composite Cursor

                 Node A                    Node B




                 IMessageBus                                        IMessageBus




                    Topic      A       B
                                                    Throughput
                      Topic        A       B
                                                     Scale-Out
                       Topic       A           B

Client Pinning
Node A                    Node B




  Socket.io                                     Socket.io




  Topic       A       B
                                   Throughput
    Topic         A       B
                                    Scale-Out
     Topic        A           B
Notification Hubs
Client app




                Platform
               Notification
                Service




App back-end
iOS app      Windows Store
                                app




App back-end                                APNs   WNS



                    Service Bus
                   Notification Hub
Tag:”Beatles”


           Tag:”Beatles”

                       Service Bus
App back-end          Notification Hub


                             Tag:”Wailers”
<toast>
           <visual>
             <binding template="ToastText01">
              <text id="1">$(message)</text>
             </binding>
           </visual>
          </toast>
                                                     Hello!

 { message: ‚Hello!‛ }




                                 Service Bus
App back-end                    Notification Hub

                                                      Hello!




                         {
                             aps: {
                               alert: ‚$(message)‛
                             }
                         }
Thank You For
Listening!

Mais conteúdo relacionado

Mais procurados

SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session WSO2
 
Zimbra Collaboration Suite Vs Microsoft Exchange 2007
Zimbra Collaboration Suite Vs Microsoft Exchange 2007Zimbra Collaboration Suite Vs Microsoft Exchange 2007
Zimbra Collaboration Suite Vs Microsoft Exchange 2007agileware
 
VMware vFabric - CIO Webinar - Al Sargent
VMware vFabric - CIO Webinar - Al SargentVMware vFabric - CIO Webinar - Al Sargent
VMware vFabric - CIO Webinar - Al SargentVMware vFabric
 
Ipol Complete Email
Ipol Complete EmailIpol Complete Email
Ipol Complete Emailbenspalding
 
Clavister security for virtualized environment
Clavister security for virtualized environmentClavister security for virtualized environment
Clavister security for virtualized environmentnicolasotira
 
Windows Azure Platform
Windows Azure PlatformWindows Azure Platform
Windows Azure PlatformAsmTrash
 
Extending your Data Centre with AWS Sydney Customer Appreciation Day
Extending your Data Centre with AWS Sydney Customer Appreciation DayExtending your Data Centre with AWS Sydney Customer Appreciation Day
Extending your Data Centre with AWS Sydney Customer Appreciation DayAmazon Web Services
 
5 dani künzli citrix networking news 1
5 dani künzli citrix networking news 15 dani künzli citrix networking news 1
5 dani künzli citrix networking news 1Digicomp Academy AG
 
OpSource cloud hosting
OpSource cloud hostingOpSource cloud hosting
OpSource cloud hostingOpSource
 
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011darach
 
[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure Platform
[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure Platform[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure Platform
[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure PlatformVitor Tomaz
 
SQL Server 2008 para Implementar Biztalk
SQL Server 2008 para Implementar BiztalkSQL Server 2008 para Implementar Biztalk
SQL Server 2008 para Implementar BiztalkEduardo Castro
 
Jee技术在移动互联网中的应用
Jee技术在移动互联网中的应用Jee技术在移动互联网中的应用
Jee技术在移动互联网中的应用javabloger
 
Layer 7 & Oracle: Cyber Defense for SOA & REST
Layer 7 & Oracle: Cyber Defense for SOA & RESTLayer 7 & Oracle: Cyber Defense for SOA & REST
Layer 7 & Oracle: Cyber Defense for SOA & RESTCA API Management
 

Mais procurados (18)

SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session
 
Zimbra Collaboration Suite Vs Microsoft Exchange 2007
Zimbra Collaboration Suite Vs Microsoft Exchange 2007Zimbra Collaboration Suite Vs Microsoft Exchange 2007
Zimbra Collaboration Suite Vs Microsoft Exchange 2007
 
VMware vFabric - CIO Webinar - Al Sargent
VMware vFabric - CIO Webinar - Al SargentVMware vFabric - CIO Webinar - Al Sargent
VMware vFabric - CIO Webinar - Al Sargent
 
Ipol Complete Email
Ipol Complete EmailIpol Complete Email
Ipol Complete Email
 
2018 jk
2018 jk2018 jk
2018 jk
 
Clavister security for virtualized environment
Clavister security for virtualized environmentClavister security for virtualized environment
Clavister security for virtualized environment
 
Windows Azure Platform
Windows Azure PlatformWindows Azure Platform
Windows Azure Platform
 
Extending your Data Centre with AWS Sydney Customer Appreciation Day
Extending your Data Centre with AWS Sydney Customer Appreciation DayExtending your Data Centre with AWS Sydney Customer Appreciation Day
Extending your Data Centre with AWS Sydney Customer Appreciation Day
 
5 dani künzli citrix networking news 1
5 dani künzli citrix networking news 15 dani künzli citrix networking news 1
5 dani künzli citrix networking news 1
 
OpSource cloud hosting
OpSource cloud hostingOpSource cloud hosting
OpSource cloud hosting
 
Shalini xs10
Shalini xs10Shalini xs10
Shalini xs10
 
Deja vu.idc.solutions
Deja vu.idc.solutionsDeja vu.idc.solutions
Deja vu.idc.solutions
 
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
 
[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure Platform
[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure Platform[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure Platform
[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure Platform
 
SQL Server 2008 para Implementar Biztalk
SQL Server 2008 para Implementar BiztalkSQL Server 2008 para Implementar Biztalk
SQL Server 2008 para Implementar Biztalk
 
Jee技术在移动互联网中的应用
Jee技术在移动互联网中的应用Jee技术在移动互联网中的应用
Jee技术在移动互联网中的应用
 
Layer 7 and Oracle -
Layer 7 and Oracle - Layer 7 and Oracle -
Layer 7 and Oracle -
 
Layer 7 & Oracle: Cyber Defense for SOA & REST
Layer 7 & Oracle: Cyber Defense for SOA & RESTLayer 7 & Oracle: Cyber Defense for SOA & REST
Layer 7 & Oracle: Cyber Defense for SOA & REST
 

Semelhante a Build Scalable Hybrid Solutions with Service Bus in Cloud and Server

Understanding the WSO2 Platform and Technology
Understanding the WSO2 Platform and TechnologyUnderstanding the WSO2 Platform and Technology
Understanding the WSO2 Platform and TechnologyWSO2
 
Convertigo Mobile Application Development platform for Enterprises
Convertigo Mobile Application Development platform for EnterprisesConvertigo Mobile Application Development platform for Enterprises
Convertigo Mobile Application Development platform for EnterprisesConvertigo | MADP & MBaaS
 
MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...
MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...
MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...Spiffy
 
Middleware in the cloud platform-v2
Middleware in the cloud   platform-v2Middleware in the cloud   platform-v2
Middleware in the cloud platform-v2Hammad Rajjoub
 
Microsoft Best Practices - AWS India Summit 2012
Microsoft Best Practices - AWS India Summit 2012Microsoft Best Practices - AWS India Summit 2012
Microsoft Best Practices - AWS India Summit 2012Amazon Web Services
 
Ss Wrap Up Session 13 Aug
Ss Wrap Up Session 13 AugSs Wrap Up Session 13 Aug
Ss Wrap Up Session 13 AugWSO2
 
Introduction to the Azure Service Bus EAI & EDI featuresiedi features
Introduction to the Azure Service Bus EAI & EDI featuresiedi featuresIntroduction to the Azure Service Bus EAI & EDI featuresiedi features
Introduction to the Azure Service Bus EAI & EDI featuresiedi featuresSandro Pereira
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategydrmarcustillett
 
Are ott the new walled gardens
Are ott the new walled gardensAre ott the new walled gardens
Are ott the new walled gardensAmir Zmora
 
ESB and SOA
ESB and SOAESB and SOA
ESB and SOAWSO2
 
Bay Talkitec Next Gen Vas Platform
Bay Talkitec Next Gen Vas PlatformBay Talkitec Next Gen Vas Platform
Bay Talkitec Next Gen Vas Platformroger1
 
Development Model for The Cloud
Development Model for The CloudDevelopment Model for The Cloud
Development Model for The Cloudumityalcinalp
 
Ofm msft-interop-v5c-132827
Ofm msft-interop-v5c-132827Ofm msft-interop-v5c-132827
Ofm msft-interop-v5c-132827surilige
 
Overall & technical IT Recruitment skills
Overall &  technical IT Recruitment skills Overall &  technical IT Recruitment skills
Overall & technical IT Recruitment skills Toine Van Kastel
 
Competitive Analysis w SWOT Matrix
Competitive Analysis w SWOT MatrixCompetitive Analysis w SWOT Matrix
Competitive Analysis w SWOT MatrixDavid Castro
 

Semelhante a Build Scalable Hybrid Solutions with Service Bus in Cloud and Server (20)

Understanding the WSO2 Platform and Technology
Understanding the WSO2 Platform and TechnologyUnderstanding the WSO2 Platform and Technology
Understanding the WSO2 Platform and Technology
 
Convertigo Mobile Application Development platform for Enterprises
Convertigo Mobile Application Development platform for EnterprisesConvertigo Mobile Application Development platform for Enterprises
Convertigo Mobile Application Development platform for Enterprises
 
MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...
MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...
MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...
 
Middleware in the cloud platform-v2
Middleware in the cloud   platform-v2Middleware in the cloud   platform-v2
Middleware in the cloud platform-v2
 
Microsoft Best Practices - AWS India Summit 2012
Microsoft Best Practices - AWS India Summit 2012Microsoft Best Practices - AWS India Summit 2012
Microsoft Best Practices - AWS India Summit 2012
 
Ss Wrap Up Session 13 Aug
Ss Wrap Up Session 13 AugSs Wrap Up Session 13 Aug
Ss Wrap Up Session 13 Aug
 
Introduction to the Azure Service Bus EAI & EDI featuresiedi features
Introduction to the Azure Service Bus EAI & EDI featuresiedi featuresIntroduction to the Azure Service Bus EAI & EDI featuresiedi features
Introduction to the Azure Service Bus EAI & EDI featuresiedi features
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategy
 
Are ott the new walled gardens
Are ott the new walled gardensAre ott the new walled gardens
Are ott the new walled gardens
 
Exchange 2013 ABC's: Architecture, Best Practices and Client Access
Exchange 2013 ABC's: Architecture, Best Practices and Client AccessExchange 2013 ABC's: Architecture, Best Practices and Client Access
Exchange 2013 ABC's: Architecture, Best Practices and Client Access
 
ESB and SOA
ESB and SOAESB and SOA
ESB and SOA
 
Bay Talkitec Next Gen Vas Platform
Bay Talkitec Next Gen Vas PlatformBay Talkitec Next Gen Vas Platform
Bay Talkitec Next Gen Vas Platform
 
Development Model for The Cloud
Development Model for The CloudDevelopment Model for The Cloud
Development Model for The Cloud
 
Application Migration & Enhancement
Application Migration & EnhancementApplication Migration & Enhancement
Application Migration & Enhancement
 
R3arch
R3archR3arch
R3arch
 
Oracle Fusion Middleware
Oracle Fusion MiddlewareOracle Fusion Middleware
Oracle Fusion Middleware
 
Ofm msft-interop-v5c-132827
Ofm msft-interop-v5c-132827Ofm msft-interop-v5c-132827
Ofm msft-interop-v5c-132827
 
Net Services
Net ServicesNet Services
Net Services
 
Overall & technical IT Recruitment skills
Overall &  technical IT Recruitment skills Overall &  technical IT Recruitment skills
Overall & technical IT Recruitment skills
 
Competitive Analysis w SWOT Matrix
Competitive Analysis w SWOT MatrixCompetitive Analysis w SWOT Matrix
Competitive Analysis w SWOT Matrix
 

Mais de Microsoft Developer Network (MSDN) - Belgium and Luxembourg

Mais de Microsoft Developer Network (MSDN) - Belgium and Luxembourg (20)

Code in the Cloud - Ghent - 20 February 2015
Code in the Cloud - Ghent - 20 February 2015Code in the Cloud - Ghent - 20 February 2015
Code in the Cloud - Ghent - 20 February 2015
 
Executive Summit for ISV & Application builders - January 2015
Executive Summit for ISV & Application builders - January 2015Executive Summit for ISV & Application builders - January 2015
Executive Summit for ISV & Application builders - January 2015
 
Executive Summit for ISV & Application builders - Internet of Things
Executive Summit for ISV & Application builders - Internet of ThingsExecutive Summit for ISV & Application builders - Internet of Things
Executive Summit for ISV & Application builders - Internet of Things
 
Executive Summit for ISV & Application builders - January 2015
Executive Summit for ISV & Application builders - January 2015Executive Summit for ISV & Application builders - January 2015
Executive Summit for ISV & Application builders - January 2015
 
Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014
 
Adam azure presentation
Adam   azure presentationAdam   azure presentation
Adam azure presentation
 
release management
release managementrelease management
release management
 
cloud value for application development
cloud value for application developmentcloud value for application development
cloud value for application development
 
Modern lifecycle management practices
Modern lifecycle management practicesModern lifecycle management practices
Modern lifecycle management practices
 
Belgian visual studio launch 2013
Belgian visual studio launch 2013Belgian visual studio launch 2013
Belgian visual studio launch 2013
 
Windows Azure Virtually Speaking
Windows Azure Virtually SpeakingWindows Azure Virtually Speaking
Windows Azure Virtually Speaking
 
Inside the Microsoft TechDays Belgium Apps
Inside the Microsoft TechDays Belgium AppsInside the Microsoft TechDays Belgium Apps
Inside the Microsoft TechDays Belgium Apps
 
TechDays 2013 Developer Keynote
TechDays 2013 Developer KeynoteTechDays 2013 Developer Keynote
TechDays 2013 Developer Keynote
 
Windows Phone 8 Security Deep Dive
Windows Phone 8 Security Deep DiveWindows Phone 8 Security Deep Dive
Windows Phone 8 Security Deep Dive
 
Deep Dive into Entity Framework 6.0
Deep Dive into Entity Framework 6.0Deep Dive into Entity Framework 6.0
Deep Dive into Entity Framework 6.0
 
Applied MVVM in Windows 8 apps: not your typical MVVM session!
Applied MVVM in Windows 8 apps: not your typical MVVM session!Applied MVVM in Windows 8 apps: not your typical MVVM session!
Applied MVVM in Windows 8 apps: not your typical MVVM session!
 
Building SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.jsBuilding SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.js
 
Deep Dive and Best Practices for Windows Azure Storage Services
Deep Dive and Best Practices for Windows Azure Storage ServicesDeep Dive and Best Practices for Windows Azure Storage Services
Deep Dive and Best Practices for Windows Azure Storage Services
 
Building data centric applications for web, desktop and mobile with Entity Fr...
Building data centric applications for web, desktop and mobile with Entity Fr...Building data centric applications for web, desktop and mobile with Entity Fr...
Building data centric applications for web, desktop and mobile with Entity Fr...
 
Bart De Smet Unplugged
Bart De Smet UnpluggedBart De Smet Unplugged
Bart De Smet Unplugged
 

Build Scalable Hybrid Solutions with Service Bus in Cloud and Server

  • 1. Building Scalable and Robust Solutions with Service Bus in Cloud and Server Clemens Vasters (@clemensv) Principal Technical Lead / Architect Windows Azure Application Platform Team – Service Bus
  • 2. Appliances Phones & Tablets PC SaaS Cloud app  Queues Topics Relays Notifications Team SharePoint LOB Apps Event Aggregator site ....
  • 3. *cloud-only for now **cloud-only for the forseeable future
  • 4. • Building cloud services • Enable Hybrid configurations • Connected client scenarios
  • 5. XBox Leaderboard Game Stats Devices Devices XBox Gateway Role Service Bus Queues Halo Backend Role Xbox Live XBox 1. Game scores fan-in to Queues 2. Sessions used to correlate games 3. Scheduled messages to track completion XBox 4. Halo backend produces finalized stats
  • 6. Retail Services ISV POS POS Retail Web Services Service Bus Queues IT Admin POS Service Bus Topics Marketing Sales data fan-in to Queues Messages processed and appropriate messages sent Topics used to support Publish-Subscribe for messages POS Real-time monitoring as well as decoupled inventory updates
  • 7. Enterprise Services ISV Service Bus Relay ISV Suite Policy Updates Remote Management Enterprise Private Cloud Central Repository ISV Private Cloud • ISV Suite offers a turn-key solution for security & management of BYOD • Deployed on enterprise networks behind firewalls/NATs • Uses Service Bus Relay to push policy updates/templates and perform remote management of the Suite
  • 8. CRM Online CRM Online Service Windows 8 1. Devices Authenticate with CRM 2. Registration sent to Notification Hub 3. Message initiated by CRM Online Service 4. Customized Notifications to all devices Service Bus Notification Hub Win Phone 8 WNS Filter w/ Tags Broadcast Scale Templates iOS APNS
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. Apps .NET WCF Service Model C/C++ Java/JMS (incl Embedded) Node.j Any Python PHP NetMessagingBinding Apache Qpid s HTTP client client Apache JMS AMQP client client Proton-C 1.0 .NET Service Bus Messaging API SB Messaging Protocol AMQP 1.0 HTTP(S) (net.tcp, proprietary) Service Bus
  • 15.
  • 16.
  • 17.
  • 19.
  • 20. Sender Replay Buffer Idempotence Barrier Receiver
  • 21.
  • 22.
  • 23.
  • 24. Service Bus Message Sys Properties Key Value Key Value Key Value Custom Properties Key Value Key Value Key Value Key Value Body Body (Bag of Bytes)
  • 25. Broker Receive and Delete Broker 1. Peek/Lock 2. Delete/Unlock
  • 26.
  • 27.
  • 28. Service Bus 1.0 for Windows Server
  • 29. Why & What On-Premises pub-sub •Enterprise applications developed and deployed on-premise. Develop& Deploy •Scale ; HA ; Manageability ; Rich messaging feature set Develop On-premise •High fidelity develop, test, debug experience Develop Deploy •DevBox deployment (HW&SF pre-reqs) ; Tools (VS); debug mode ; symmetry Flexible Deployment •Driven by enterprise desire for deployment choice (or perception Deploy Deploy thereof) •Full symmetry ; Ease of migration Tiered Deployment •Maintain control of mission critical data / systems Data App •Unable/unwilling to migrate legacy systems •Gradual migration to cloud •Message Federation ; Store-and-Forward
  • 30. Clustered deployment Node • Identical nodes SB Gateway SB Messaging Backend Message • Stateless gateways Store Node SB Messaging Message SB Gateway Backend Store • Backend Node Message Store SB Messaging SB Gateway Backend Message • Databases Store Gateway DB
  • 31.
  • 32. Windows Server 2008 R2 SP1 Windows Server 2012 SQL Server 2008 R2 SP1 SQL Server 2012 Web PI-based
  • 33. Hardware Measured performance for flow rates 20,000 messages/s 14,200 messages/s 26 messages/s Always able to get more by using faster machines.
  • 35. Queue
  • 36. Queue
  • 37. Queue
  • 38. Sub Topic Sub Sub
  • 39. Broker Message Properties Reply Queue Broker Broker Message Send Queue Properties Body
  • 40. Broker Message Properties Reply Queue Broker Message Properties Broker Send Queue Body Broker Message Reply Queue Properties
  • 41. var sender = QueueClient.CreateFromConnectionString(cs, "test"); sender.Send(new BrokeredMessage { Label = "Hello" }); // Send a message with system and application properties set var bm = new BrokeredMessage(); bm.Label = "PurchaseOrder123"; bm.TimeToLive = new TimeSpan(0, 5, 0); bm.Properties["PurchaseOrderID"] = 1234; sender.Send(bm);
  • 42. var receiver1 = QueueClient.CreateFromConnectionString(cs, "test", ReceiveMode.ReceiveAndDelete); var msg1 = receiver1.Receive(); var receiver2 = QueueClient.CreateFromConnectionString(cs, "test", ReceiveMode.PeekLock); var msg2 = receiver2.Receive(); try { // Process msg2 msg2.Complete(); } catch { msg2.Abandon(); throw; }
  • 43. <predicate ::= { NOT <predicate> } | <predicate> AND <predicate> | <predicate> OR <predicate> | <expression> { = | <> | != | > | >= | < | <= } <expression> | <property> IS [NOT] NULL | <expression> [NOT] IN ( <expression> [, ...n] ) | <expression> [NOT] LIKE <pattern> [ESCAPE <escape_char>] | EXISTS ( <property> ) | ( <predicate> ) <expression> ::= <constant> | <property> | <expression> { + | - | * | / | % } <expression> | { + | - } <expression> | ( <expression> ) var filter = new SqlFilter("InvoiceTotal < 10000");
  • 44. <statements> ::= <statement> [, ...n] | <action> [;] <action> ::= SET <property> = <expression> | REMOVE <property> <expression> ::= <literal> | <function> ::= newid() | <property> | <expression> { + | - | * | / | % } <expression> | { + | - } <expression> | ( <expression> ) var rule = new SqlRuleAction("SET FullName = FirstName + ' ' + LastName");
  • 45. QueueDescription destinationQ = new QueueDescription("myQ2"); QueueDescription sourceQ = new QueueDescription("myQ1"); sourceQ.ForwardTo = "myQ2"; NamespaceManager nm = NamespaceManager.Create(); nm.CreateQueue(destinationQ); nm.CreateQueue(sourceQ);
  • 46. DeviceId = ‘123’ OR UserId = ‘clemensv’ OR Group IN (‘A’, ‘B’, ‘C’) Group IN (‘A’, ‘B’, ‘C’, ‘D’, ‘E’) DeviceId = ‘456’ OR UserId = ‘clemensv’ OR Group IN (‘A’, ‘B’, ‘C’)
  • 47.
  • 48. HTTP SBMP/AMQP HTTP 1 Entity per Socket 1 Pending Operation per Socket 60s operation timeout (NAT/Prx) SBMP/AMQP Unlimited Multiplexed Entities and Unlimited Pending Ops per Socket No fixed operation timeout Session Support (coming in AMQP)
  • 49.
  • 50. Browsers Long Polling, Web Sockets, Server-Side Events, Forever-Frame Connections Key Value IMessageBus key1 Filtered key2 Receive … keyN
  • 51. Composite Cursor Node A Node B IMessageBus IMessageBus Topic A B Throughput Topic A B Scale-Out Topic A B Client Pinning
  • 52. Node A Node B Socket.io Socket.io Topic A B Throughput Topic A B Scale-Out Topic A B
  • 54.
  • 55. Client app Platform Notification Service App back-end
  • 56.
  • 57. iOS app Windows Store app App back-end APNs WNS Service Bus Notification Hub
  • 58.
  • 59. Tag:”Beatles” Tag:”Beatles” Service Bus App back-end Notification Hub Tag:”Wailers”
  • 60. <toast> <visual> <binding template="ToastText01"> <text id="1">$(message)</text> </binding> </visual> </toast> Hello! { message: ‚Hello!‛ } Service Bus App back-end Notification Hub Hello! { aps: { alert: ‚$(message)‛ } }