SlideShare una empresa de Scribd logo
1 de 52
Introducing Luup




        BizTalk Used for Real Time Payments


      Luup provides payment services for mobile phones in emerging markets in Asia and the Middle East. This presentation will
      discuss challenges in building a mobile payment platform, which supports high transaction volumes and a minimum of
      latency, using BizTalk for internal workflow services in a SOA architecture.




© Luup International Ltd.                                        #1
Introducing Luup
                  Topics

  • Introduction to Luup
          –     Real-time Payments
          –     The Luup System Platform
          –     The Main Architectural Driving Factors
          –     How Luup Uses BizTalk
          –     The Development Teams
  • Our Experiences and Challenges With BizTalk
          –     Performance
          –     Consistency
          –     Maintainability
          –     Automated Testing
          –     Automated Deployment
© Luup International Ltd.                #2
Introducing Luup
                               Luup

  •     Started in Norway > 10 years ago
  •     Development in Oslo, HQ in London, Sales Office in Dubai
  •     Experience with several mobile payment products
  •     Main product is a global remittance eco-system
  •     Offers bank-grade mobile payment solutions
  •     A managed service
  •     An integrated banking platform
  •     Our projects are centered around:
        - Integration towards new partners and customers
        - Make business processes work on our standard platform
        - UI: SMS, Mobile App and Web


© Luup International Ltd.         #3
Introducing Luup
       Real-time Payments Examples

  • Remittances - customers send money to their
    families conveniently, quickly and securely
    using their mobile devices
  • Domestic Payments - customers pay people,
    bills, charities and merchants
  • Disbursements - customers receive their
    wages or social benefits into an account linked
    to their mobile device

© Luup International Ltd.   #4
Introducing Luup Driving
               Factors
                            Architectural Decisions

  • Decided to use standard software as much as
    possible (came from a history where
    everything was in-house and custom made)
  • Robust orchestration of services is important
  • Building a scalable platform is vital, since our
    business model relies on a high volume of
    transactions to be profitable


© Luup International Ltd.             #5
Introducing Luup
             The Luup Platform


                     Luup Payment Processing Platform
         Employee UI           End user UI            SMS
          web site        web site / web services    server            Telco
            Q                     Q                  Q
                  of ser ration




                 Q                     Q                  Q
                               BizTalk
                        vices
                         st




                              MsgBox        Partner
                                             Partner               Bank web
                                              Partner
                   Orche




                 Core/BPM                  Gateway                  services
                               MsgBox       Gateway
                                             Gateway

                       http            http                         In
                                                                 Ty teg
                                                              Bi pic rat
                                                                zT al io
                                     Luup                         al      n
         Core banking                                               k usa –
            system                  Services                             ge
                                                                            of
© Luup International Ltd.                         #6
Introducing Luup
              The Luup Team

  • Our internal developers:
          – Had no experience with BizTalk 2 years ago
          – Were mostly experienced .Net developers –
            learned quickly
          – Now this background helps in deciding whether
            code should be made in BizTalk shapes, C#
            components or services
  • Offshore team with 3-5 developers:
          – Developed the Core/BPM application
© Luup International Ltd.       #7
Introducing Luup
            End of Introduction


  • Now over to challenges we have faced and
    experiences made during the last 2 years




© Luup International Ltd.   #8
IntroducingExperiences and Challenges
       Luup’s Luup
                            in Using BizTalk

  •     Introduction
  •     Performance
  •     Consistency
  •     Maintainability
  •     Automated Testing
  •     Automated Deployment


© Luup International Ltd.          #9
Introducing Luup
         The Luup Platform - Recap


                     Luup Payment Processing Platform
         Employee UI               End user UI            SMS
          web site            web site / web services    server      Telco
            Q    Q                    Q    Q             Q
                                                              Q
                                   BizTalk
                                   MsgBox      Partner
                                                Partner           Bank web
                                                 Partner
                 Core/BPM                      Gateway
                                                Gateway            services
                                   MsgBox        Gateway

                       http             http


         Core banking                Luup
            system                  Services

© Luup International Ltd.                          #10
Introducing Luup




       PERFORMANCE


© Luup International Ltd.   #11
Introducing Luup
                Challenges

  • Complex business process orchestrations
          – Many (10-20) web service calls in each workflow
                   • Important for our design choices
  • Low latency required for some scenarios
          – Serve requests from web and mobile app
            frontends
  • Performance tuning of BT is complicated!
          – Each system/setup is unique

© Luup International Ltd.                 #12
Introducing Luup
           Current Configuration

  • Shared server for Partner Gateway and BPM
  • Active-Passive cluster
          – Due to licence costs, until the number of
            transactions increases
  • Separate hosts for receiving, sending and
    processing
  • We use the defaults for most settings


© Luup International Ltd.         #13
Introducing Luup
           Design Considerations

  • The database will be our bottleneck
          – The database is the hardest component to scale
          – We need to limit database roundtrips




© Luup International Ltd.        #14
Introducing Luup
              Latency Example

  • Message box round trips (polling every 0,5s):
          – If 10 service calls:
                   • Adapter polls for messages to send, orchestration polls
                     for response messages
                   • 10 requests and 10 responses = 20 msg box roundtrips
          – 20 msg box roundtrips * 0,25 sec = 5 sec
            (for polling msg box only)
          – If 1 sec used on actual processing: 5 + 1 = 6 sec
  • How can we avoid this latency?
© Luup International Ltd.                  #15
Introducing Luup
        Low Latency Considerations

  • Alternatives for calling web services from
    workflows
          – WCF Adapters
                   • Polling interval can be tuned down to 50 ms
          – Use .Net code – «Service Caller»
                   • Used in our solution




© Luup International Ltd.                   #16
Introducing Luup
               Using Adapters

  • Pros
          – The default and recommended way when using
            BizTalk
  • Cons
          – Orchestration is persisted for each web service
            call
          – Message Box roundtrips for request and response
            message

© Luup International Ltd.       #17
Introducing Luup
            The «Service Caller»

  • Uses C# code to do SOAP calls
  • Two versions:
          – Old version using WebRequest
          – New version using WCF
  • We only use it in the CORE/BPM application
          – Only calls to locally deployed services
  • We use BAM for logging requests and
    responses
© Luup International Ltd.          #18
Introducing Luup
         Service Caller - Advantages

  • Low latency and DB load
          – No message box roundtrips
          – Orchestration is not persisted after the request is
            sent




© Luup International Ltd.         #19
Introducing Luup
       Service Caller - Disadvantages

  • Need to be careful about when the
    orchestration is persisted
          – When replaying request we need to use the
            original request ids
          – Generate request ids up-front and start using the
            service caller after the ids have been persisted




© Luup International Ltd.         #20
Introducing Luup
       Service Caller - Disadvantages

  • We take control of resource usage throttling
    away from BizTalk
          – Threads are used while waiting for web service
            replies
          – Use short timeouts (< 60s) and short retry
            intervals




© Luup International Ltd.        #21
Introducing Luup
         Summarizing Performance

  • Performance tuning BizTalk is hard and time
    consuming
  • Using .Net code to call web services has
    improved our latency
  • We need to focus on performance in the near
    future as the number transactions increases



© Luup International Ltd.   #22
Introducing Luup




       CONSISTENCY


© Luup International Ltd.   #23
Introducing Luup
                Consistency


                     Luup Payment Processing Platform
         Employee UI               End user UI                      SMS
          web site            web site / web services              server      Telco
            Q    Q                    Q    Q                       Q
                                                                        Q
                                   BizTalk
                                   MsgBox                 Partner
                                                           Partner          Bank web
                                                            Partner
                 Core/BPM                                 Gateway
                                                           Gateway           services
                                   MsgBox                   Gateway

                       http                 http
                                      called with serv
                                      Inside circle: Id




         Core banking                Luup
            system                  Services

© Luup International Ltd.                                    #24
Introducing Luup
                Consistency


                     Luup Payment Processing Platform
         Employee UI               End user UI               SMS
          web site            web site / web services       server      Telco
            Q    Q                    Q    Q                Q
                                                                 Q
                                   BizTalk
                                   MsgBox          Partner
                                                    Partner          Bank web
                                                     Partner
                 Core/BPM                          Gateway
                                                    Gateway           services
                                   MsgBox            Gateway

                       http              http
                                       Throug




         Core banking                Luup
            system                  Services
                                             h
                                         circle:




© Luup International Ltd.                             #25
                                            A
Introducing Luup




       MAINTAINABILITY


© Luup International Ltd.   #26
Introducing Luup
           Size of Orchestrations

  • Complex business logic gives complex
    orchestrations
          – Results in orchestrations which are hard to:
                   • Understand
                   • Change
                   • Test




© Luup International Ltd.         #27
Introducing Luup
             Shapes vs C# Code

  • Use shapes as much as possible?
          – Results in huge orchestrations which are
                   • Hard to test
                   • Hard to read
                   • Has duplicated logic
          – Pros
                   • All the logic is visible in the orchestration designer and
                     debugger
          – Call Orchestration can be used to split out
            orchestration parts

© Luup International Ltd.                   #28
Introducing Luup
              Shapes Example




© Luup International Ltd.   #29
Introducing Luup
             Shapes vs C# Code

  • Or use C# code as much as possible?
          – Keeps the orchestrations dense and focused
          – Use the orchestration only for controlling the
            transaction (at a high level)
                   • Which is the main reason why we needed BizTalk
          – C# code is easy to unit test




© Luup International Ltd.                #30
Introducing Luup
          Using Internal Contracts

  • Vital for having a clean modular architecture
  • Hide gory details from external systems
          – Internal contracts which are easier to understand
                   • Mapping complex external contracts
                   • Greatly improves maintainability
          – Anti-corruption layers
                   • Keeps the core stable even when external services
                     change
  • Small and reusable orchestrations
© Luup International Ltd.                 #31
Introducing Luup
          Using Internal Contracts


                     Luup Payment Processing Platform
         Employee UI               End user UI            SMS
          web site            web site / web services    server      Telco
            Q    Q                    Q    Q             Q
                                                              Q
                                   BizTalk
                                   MsgBox      Partner
                                                Partner           Bank web
                                                 Partner
                 Core/BPM                      Gateway
                                                Gateway            services
                                   MsgBox        Gateway

                       http             http


         Core banking                Luup
            system                  Services

© Luup International Ltd.                          #32
Introducing Luup
          Using Internal Contracts




                                     Contracts




                                                       Contracts
                       Reusable
                    orchestrations
                      Contracts




© Luup International Ltd.                        #33
Introducing Luup
        Summarizing Maintainability

  • Keep orchestrations small
  • Don’t be afraid of using C# code
          – But be careful about orchestration persistence
            when changing state in C# code
  • Use internal contracts




© Luup International Ltd.        #34
Introducing Luup

                            I don’t usually test my
                            code.

                            But when I do,
                            I do it in Production.

       AUTOMATED TESTS


© Luup International Ltd.     #35
Introducing Luup
         Unit and Integration Tests

  • Using unit tests for
          – Maps
          – C# code


  • Integration tests
          – Using BizUnit for testing orchestrations




© Luup International Ltd.         #36
Introducing Luup
    Testing Maps – The Built-in Test Func




© Luup International Ltd.   #37
Introducing Luup
    Testing Maps – The Built-in Test Func

  • Disadvantages of built-in test functionality:
          – Compiles maps inheriting from test base class
                   • References test assembly
                     Microsoft.BizTalk.TestTools.dll which must be
                     deployed to production
          – Exceptions are swallowed
                   • Hard to figure out why a test failed




© Luup International Ltd.                   #38
Introducing Luup
        Testing Maps – Our Solution

  • Custom-made library
  • Calls XLANG component to do transformation
  • Fluent language for writing assertions




© Luup International Ltd.   #39
Introducing Luup
        Testing Maps – Our Solution




                                                  Schema validation




                                  Field validations

© Luup International Ltd.   #40
Introducing Luup
           Testing Orchestrations

  • Complex workflows
          – Requires automated tests
  • Custom made fluent interface on top of
    BizUnit
          – Reuse of code
          – Terse tests which are refactor-friendly
  • Currently we have around 350 BizUnit
    orchestration tests
© Luup International Ltd.         #41
Introducing Luup
          Testing Orchestrations - Example
[Test]
public void RemittanceSend_WhenInvalidBankTransactionDate_ShouldReturnGeneralError()
{
    const string invalidTransactionDate = "12/24/2012";
    var testCase = new BizUnitTestCaseBuilder()
        .WithTestCaseSteps(SharedTestSteps.CreateAndCleanupDirectories()) Initialize the test input file
        .WithCreateXmlFileStep(
                  new CreateXmlFileStepBuilder(@"TestDataMtoRemittanceSendRequest_ToAccount.xml",
                                                SharedConstants.Pgw.ReceiveDirectory +
                                                TestContext.CurrentContext.Test.Name + ".xml")
            .WithUpdateXml("SenderBankTransactionDate", invalidTransactionDate,
                           "//*[local-name()='SenderBankTransactionDate']")
            )
                                                                                Wait for orchestration
        .WithWaitForFileStep(SharedConstants.Pgw.SendDirectory)                 execution to finish
        .WithXmlFileValidation(new XmlFileValidationBuilder(SharedConstants.Pgw.SendDirectory)

.WithSchemaValidation(@"......SharedBizTalkSchemasPartnerGatewayMtoRemittanceSendResponse.xsd",
                    "http://www.luup.com/schemas/")
                .WithXPathValidation("ErrorId", MtoRemittanceSendResultCode.GeneralFailure.ToString(),
                  "//*[local-name()='ErrorId']")
            )
        .Build();
                                                                        Verify the result message

      var bizUnit = new BizUnit.BizUnit(testCase);
      bizUnit.RunTest();
}
    © Luup International Ltd.                        #42
Introducing Luup
          Build Server Integration

  • After each code checkin:
          – Build packages
          – Deploy all BizTalk applications to a dedicated
            BizUnit server
          – Run BizUnit integration tests




© Luup International Ltd.         #43
Introducing Luup
      Summarizing Automated Testing

  • The built-in unit testing functionality for maps
    is no good
          – Using BizUnit is a better choice
  • Both maps and orchestrations can and should
    have automated tests
  • Build server runs automated tests



© Luup International Ltd.         #44
Introducing Luup
                                                                      Test Environments
                                       TFS
                                                       Build
                                      Source
                                                      Servers
                                      Control

                             Code
                            Changes                             Deployment

                                                                             Production




       AUTOMATED DEPLOYMENT


© Luup International Ltd.                       #45
Introducing Luup
        Our Deployment Challenges

  • Our solution consists of about 20 BizTalk
    applications
  • 9 test environments
  • Time consuming deployments to Production




© Luup International Ltd.   #46
Introducing Luup
         How We Do Deployments

  • Each application use BizTalk Deployment
    Framework (BTDF)
  • Using the Sprinkler framework to control
    deployment of multiple applications
  • The build server creates installation packages
    each time we check in code
          – Also deploys and runs BizUnit integration tests
  • Automated deployments to test environments
© Luup International Ltd.         #47
Introducing Luup
         The Sprinkler Framework

  • Open source on CodePlex
  • A set of PowerShell script built on top of BTDF
  • A bit immature
          – We had to make a couple of changes to the scripts
            in order to make it work with Active-Passive
            clusters
  • Great when having multiple applications and
    servers
  • Great for automated deployment
© Luup International Ltd.        #48
Introducing Luup
          Deploying to Production

  • Active-passive cluster
  • Using Sprinkler for parallel deployment to the
    nodes
  • IT Ops handle deployment
          – Developers should not touch the Production
            environment




© Luup International Ltd.       #49
Introducing Luup
    Summarizing Automated Deployment

  • BTDF and Sprinkler are good frameworks
  • Automate your deployments
  • Use the same binaries when deploying to test
    and production
  • Deploy early and often




© Luup International Ltd.   #50
Introducing Luup
               Main Summary

  • Flexible and scalable solution
  • Usage of BizTalk both as a traditional integration tool
    and orchestration of services
  • Reduce latency by reducing message box roundtrips
  • Improve maintainability by creating a modularized
    architecture with clean interfaces
  • Testing of maps and orchestrations can and should be
    automated
  • Automated deployment is useful when having many
    BizTalk applications

© Luup International Ltd.     #51
Introducing Luup
                Questions?




© Luup International Ltd.   #52

Más contenido relacionado

Destacado

When blockchain isn’t the answer – audio coding Bagz.it - Tim Hegarty, Bagz.it
When blockchain isn’t the answer – audio coding Bagz.it  - Tim Hegarty, Bagz.it When blockchain isn’t the answer – audio coding Bagz.it  - Tim Hegarty, Bagz.it
When blockchain isn’t the answer – audio coding Bagz.it - Tim Hegarty, Bagz.it MME 4.5 / Music 4.5 / 2Pears
 
Securing Mobile Payments
Securing Mobile PaymentsSecuring Mobile Payments
Securing Mobile PaymentsE Radar
 
Luup Presentation on Mobile Finance trends
Luup Presentation on Mobile Finance trendsLuup Presentation on Mobile Finance trends
Luup Presentation on Mobile Finance trendsChris Skinner
 
Casino Gateway | Investing In iGaming Excellence
Casino Gateway | Investing In iGaming ExcellenceCasino Gateway | Investing In iGaming Excellence
Casino Gateway | Investing In iGaming ExcellenceCasinoGateway
 
The Ultimate Guide to Phone Bill Deposits
The Ultimate Guide to Phone Bill DepositsThe Ultimate Guide to Phone Bill Deposits
The Ultimate Guide to Phone Bill DepositsDroid Slots
 
MeaWallet Company V3.11
MeaWallet Company V3.11MeaWallet Company V3.11
MeaWallet Company V3.11Lars Sandtorv
 
表現学習時代の生成語彙論ことはじめ
表現学習時代の生成語彙論ことはじめ表現学習時代の生成語彙論ことはじめ
表現学習時代の生成語彙論ことはじめYuya Unno
 

Destacado (10)

When blockchain isn’t the answer – audio coding Bagz.it - Tim Hegarty, Bagz.it
When blockchain isn’t the answer – audio coding Bagz.it  - Tim Hegarty, Bagz.it When blockchain isn’t the answer – audio coding Bagz.it  - Tim Hegarty, Bagz.it
When blockchain isn’t the answer – audio coding Bagz.it - Tim Hegarty, Bagz.it
 
Securing Mobile Payments
Securing Mobile PaymentsSecuring Mobile Payments
Securing Mobile Payments
 
Luup Presentation on Mobile Finance trends
Luup Presentation on Mobile Finance trendsLuup Presentation on Mobile Finance trends
Luup Presentation on Mobile Finance trends
 
ICE advert
ICE advertICE advert
ICE advert
 
Mobile Finacial Services
Mobile Finacial Services Mobile Finacial Services
Mobile Finacial Services
 
Casino Gateway | Investing In iGaming Excellence
Casino Gateway | Investing In iGaming ExcellenceCasino Gateway | Investing In iGaming Excellence
Casino Gateway | Investing In iGaming Excellence
 
The Ultimate Guide to Phone Bill Deposits
The Ultimate Guide to Phone Bill DepositsThe Ultimate Guide to Phone Bill Deposits
The Ultimate Guide to Phone Bill Deposits
 
The State of Payments in Asia
The State of Payments in Asia The State of Payments in Asia
The State of Payments in Asia
 
MeaWallet Company V3.11
MeaWallet Company V3.11MeaWallet Company V3.11
MeaWallet Company V3.11
 
表現学習時代の生成語彙論ことはじめ
表現学習時代の生成語彙論ことはじめ表現学習時代の生成語彙論ことはじめ
表現学習時代の生成語彙論ことはじめ
 

Similar a Integration daysBizTalk Used for Real Time Payments

Nagios Conference 2014 - Paloma Galan - Monitoring Financial Protocols With N...
Nagios Conference 2014 - Paloma Galan - Monitoring Financial Protocols With N...Nagios Conference 2014 - Paloma Galan - Monitoring Financial Protocols With N...
Nagios Conference 2014 - Paloma Galan - Monitoring Financial Protocols With N...Nagios
 
Mule ESB - Integration Simplified
Mule ESB - Integration SimplifiedMule ESB - Integration Simplified
Mule ESB - Integration SimplifiedRich Software
 
NZ Post - Mulesoft Summit presentation
NZ Post - Mulesoft Summit presentationNZ Post - Mulesoft Summit presentation
NZ Post - Mulesoft Summit presentationMichael Brosnahan
 
Nimsoft Web performance monitoring
Nimsoft Web performance monitoringNimsoft Web performance monitoring
Nimsoft Web performance monitoringnlwebperf
 
The CIBER / CA partnership & Why CIBER is moving to Nimsoft Monitor
The CIBER / CA partnership & Why CIBER is moving to Nimsoft MonitorThe CIBER / CA partnership & Why CIBER is moving to Nimsoft Monitor
The CIBER / CA partnership & Why CIBER is moving to Nimsoft Monitor CA Nimsoft
 
Dubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architectureDubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architectureHuxing Zhang
 
Juha Kukka - Enfo
Juha Kukka - EnfoJuha Kukka - Enfo
Juha Kukka - EnfoIBM Sverige
 
Innovation in the network – Adding value to voice OpenCloud Bouygues
Innovation in the network – Adding value to voice OpenCloud BouyguesInnovation in the network – Adding value to voice OpenCloud Bouygues
Innovation in the network – Adding value to voice OpenCloud BouyguesAlan Quayle
 
Cloud Foundry Marketplace
Cloud  Foundry MarketplaceCloud  Foundry Marketplace
Cloud Foundry MarketplaceLayne Peng
 
Nasscom Presentation Microservices Database Architecture By Tudip
Nasscom Presentation  Microservices Database Architecture By TudipNasscom Presentation  Microservices Database Architecture By Tudip
Nasscom Presentation Microservices Database Architecture By TudipArti Kadu
 
MuleSoft Meetup Valletta 1.0
MuleSoft Meetup Valletta  1.0MuleSoft Meetup Valletta  1.0
MuleSoft Meetup Valletta 1.0Anastasiia Linnas
 
Open mic mediaarchitecture_121113
Open mic mediaarchitecture_121113Open mic mediaarchitecture_121113
Open mic mediaarchitecture_121113a8us
 
Architecting an ibm sametime 9.0 audio visual deployment
Architecting an ibm sametime 9.0 audio visual deploymentArchitecting an ibm sametime 9.0 audio visual deployment
Architecting an ibm sametime 9.0 audio visual deploymenta8us
 
Seize the Cloud - Proven Tactics From a Successful Service Provider
Seize the Cloud - Proven Tactics From a Successful Service ProviderSeize the Cloud - Proven Tactics From a Successful Service Provider
Seize the Cloud - Proven Tactics From a Successful Service ProviderCA Nimsoft
 
Upperside Webinar- WebRTC from the service provider prism-final
Upperside Webinar- WebRTC from the service provider prism-finalUpperside Webinar- WebRTC from the service provider prism-final
Upperside Webinar- WebRTC from the service provider prism-finalAmir Zmora
 
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014Exponential_e
 
The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015Eduardo Pelegri-Llopart
 

Similar a Integration daysBizTalk Used for Real Time Payments (20)

Subhajit ghosh
Subhajit ghoshSubhajit ghosh
Subhajit ghosh
 
Nagios Conference 2014 - Paloma Galan - Monitoring Financial Protocols With N...
Nagios Conference 2014 - Paloma Galan - Monitoring Financial Protocols With N...Nagios Conference 2014 - Paloma Galan - Monitoring Financial Protocols With N...
Nagios Conference 2014 - Paloma Galan - Monitoring Financial Protocols With N...
 
Mule ESB - Integration Simplified
Mule ESB - Integration SimplifiedMule ESB - Integration Simplified
Mule ESB - Integration Simplified
 
NZ Post - Mulesoft Summit presentation
NZ Post - Mulesoft Summit presentationNZ Post - Mulesoft Summit presentation
NZ Post - Mulesoft Summit presentation
 
Nimsoft Web performance monitoring
Nimsoft Web performance monitoringNimsoft Web performance monitoring
Nimsoft Web performance monitoring
 
The CIBER / CA partnership & Why CIBER is moving to Nimsoft Monitor
The CIBER / CA partnership & Why CIBER is moving to Nimsoft MonitorThe CIBER / CA partnership & Why CIBER is moving to Nimsoft Monitor
The CIBER / CA partnership & Why CIBER is moving to Nimsoft Monitor
 
Dubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architectureDubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architecture
 
Juha Kukka - Enfo
Juha Kukka - EnfoJuha Kukka - Enfo
Juha Kukka - Enfo
 
Innovation in the network – Adding value to voice OpenCloud Bouygues
Innovation in the network – Adding value to voice OpenCloud BouyguesInnovation in the network – Adding value to voice OpenCloud Bouygues
Innovation in the network – Adding value to voice OpenCloud Bouygues
 
Cloud Foundry Marketplace
Cloud  Foundry MarketplaceCloud  Foundry Marketplace
Cloud Foundry Marketplace
 
Nasscom Presentation Microservices Database Architecture By Tudip
Nasscom Presentation  Microservices Database Architecture By TudipNasscom Presentation  Microservices Database Architecture By Tudip
Nasscom Presentation Microservices Database Architecture By Tudip
 
MuleSoft Meetup Valletta 1.0
MuleSoft Meetup Valletta  1.0MuleSoft Meetup Valletta  1.0
MuleSoft Meetup Valletta 1.0
 
Open mic mediaarchitecture_121113
Open mic mediaarchitecture_121113Open mic mediaarchitecture_121113
Open mic mediaarchitecture_121113
 
GEETHA LAKSHMI M
GEETHA LAKSHMI MGEETHA LAKSHMI M
GEETHA LAKSHMI M
 
Architecting an ibm sametime 9.0 audio visual deployment
Architecting an ibm sametime 9.0 audio visual deploymentArchitecting an ibm sametime 9.0 audio visual deployment
Architecting an ibm sametime 9.0 audio visual deployment
 
Seize the Cloud - Proven Tactics From a Successful Service Provider
Seize the Cloud - Proven Tactics From a Successful Service ProviderSeize the Cloud - Proven Tactics From a Successful Service Provider
Seize the Cloud - Proven Tactics From a Successful Service Provider
 
Upperside Webinar- WebRTC from the service provider prism-final
Upperside Webinar- WebRTC from the service provider prism-finalUpperside Webinar- WebRTC from the service provider prism-final
Upperside Webinar- WebRTC from the service provider prism-final
 
Rma past present_v3
Rma past present_v3Rma past present_v3
Rma past present_v3
 
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
Exponential-e | Cloud Revolution Seminar at the Ritz, 20th November 2014
 
The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015
 

Último

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 

Último (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 

Integration daysBizTalk Used for Real Time Payments

  • 1. Introducing Luup BizTalk Used for Real Time Payments Luup provides payment services for mobile phones in emerging markets in Asia and the Middle East. This presentation will discuss challenges in building a mobile payment platform, which supports high transaction volumes and a minimum of latency, using BizTalk for internal workflow services in a SOA architecture. © Luup International Ltd. #1
  • 2. Introducing Luup Topics • Introduction to Luup – Real-time Payments – The Luup System Platform – The Main Architectural Driving Factors – How Luup Uses BizTalk – The Development Teams • Our Experiences and Challenges With BizTalk – Performance – Consistency – Maintainability – Automated Testing – Automated Deployment © Luup International Ltd. #2
  • 3. Introducing Luup Luup • Started in Norway > 10 years ago • Development in Oslo, HQ in London, Sales Office in Dubai • Experience with several mobile payment products • Main product is a global remittance eco-system • Offers bank-grade mobile payment solutions • A managed service • An integrated banking platform • Our projects are centered around: - Integration towards new partners and customers - Make business processes work on our standard platform - UI: SMS, Mobile App and Web © Luup International Ltd. #3
  • 4. Introducing Luup Real-time Payments Examples • Remittances - customers send money to their families conveniently, quickly and securely using their mobile devices • Domestic Payments - customers pay people, bills, charities and merchants • Disbursements - customers receive their wages or social benefits into an account linked to their mobile device © Luup International Ltd. #4
  • 5. Introducing Luup Driving Factors Architectural Decisions • Decided to use standard software as much as possible (came from a history where everything was in-house and custom made) • Robust orchestration of services is important • Building a scalable platform is vital, since our business model relies on a high volume of transactions to be profitable © Luup International Ltd. #5
  • 6. Introducing Luup The Luup Platform Luup Payment Processing Platform Employee UI End user UI SMS web site web site / web services server Telco Q Q Q of ser ration Q Q Q BizTalk vices st MsgBox Partner Partner Bank web Partner Orche Core/BPM Gateway services MsgBox Gateway Gateway http http In Ty teg Bi pic rat zT al io Luup al n Core banking k usa – system Services ge of © Luup International Ltd. #6
  • 7. Introducing Luup The Luup Team • Our internal developers: – Had no experience with BizTalk 2 years ago – Were mostly experienced .Net developers – learned quickly – Now this background helps in deciding whether code should be made in BizTalk shapes, C# components or services • Offshore team with 3-5 developers: – Developed the Core/BPM application © Luup International Ltd. #7
  • 8. Introducing Luup End of Introduction • Now over to challenges we have faced and experiences made during the last 2 years © Luup International Ltd. #8
  • 9. IntroducingExperiences and Challenges Luup’s Luup in Using BizTalk • Introduction • Performance • Consistency • Maintainability • Automated Testing • Automated Deployment © Luup International Ltd. #9
  • 10. Introducing Luup The Luup Platform - Recap Luup Payment Processing Platform Employee UI End user UI SMS web site web site / web services server Telco Q Q Q Q Q Q BizTalk MsgBox Partner Partner Bank web Partner Core/BPM Gateway Gateway services MsgBox Gateway http http Core banking Luup system Services © Luup International Ltd. #10
  • 11. Introducing Luup PERFORMANCE © Luup International Ltd. #11
  • 12. Introducing Luup Challenges • Complex business process orchestrations – Many (10-20) web service calls in each workflow • Important for our design choices • Low latency required for some scenarios – Serve requests from web and mobile app frontends • Performance tuning of BT is complicated! – Each system/setup is unique © Luup International Ltd. #12
  • 13. Introducing Luup Current Configuration • Shared server for Partner Gateway and BPM • Active-Passive cluster – Due to licence costs, until the number of transactions increases • Separate hosts for receiving, sending and processing • We use the defaults for most settings © Luup International Ltd. #13
  • 14. Introducing Luup Design Considerations • The database will be our bottleneck – The database is the hardest component to scale – We need to limit database roundtrips © Luup International Ltd. #14
  • 15. Introducing Luup Latency Example • Message box round trips (polling every 0,5s): – If 10 service calls: • Adapter polls for messages to send, orchestration polls for response messages • 10 requests and 10 responses = 20 msg box roundtrips – 20 msg box roundtrips * 0,25 sec = 5 sec (for polling msg box only) – If 1 sec used on actual processing: 5 + 1 = 6 sec • How can we avoid this latency? © Luup International Ltd. #15
  • 16. Introducing Luup Low Latency Considerations • Alternatives for calling web services from workflows – WCF Adapters • Polling interval can be tuned down to 50 ms – Use .Net code – «Service Caller» • Used in our solution © Luup International Ltd. #16
  • 17. Introducing Luup Using Adapters • Pros – The default and recommended way when using BizTalk • Cons – Orchestration is persisted for each web service call – Message Box roundtrips for request and response message © Luup International Ltd. #17
  • 18. Introducing Luup The «Service Caller» • Uses C# code to do SOAP calls • Two versions: – Old version using WebRequest – New version using WCF • We only use it in the CORE/BPM application – Only calls to locally deployed services • We use BAM for logging requests and responses © Luup International Ltd. #18
  • 19. Introducing Luup Service Caller - Advantages • Low latency and DB load – No message box roundtrips – Orchestration is not persisted after the request is sent © Luup International Ltd. #19
  • 20. Introducing Luup Service Caller - Disadvantages • Need to be careful about when the orchestration is persisted – When replaying request we need to use the original request ids – Generate request ids up-front and start using the service caller after the ids have been persisted © Luup International Ltd. #20
  • 21. Introducing Luup Service Caller - Disadvantages • We take control of resource usage throttling away from BizTalk – Threads are used while waiting for web service replies – Use short timeouts (< 60s) and short retry intervals © Luup International Ltd. #21
  • 22. Introducing Luup Summarizing Performance • Performance tuning BizTalk is hard and time consuming • Using .Net code to call web services has improved our latency • We need to focus on performance in the near future as the number transactions increases © Luup International Ltd. #22
  • 23. Introducing Luup CONSISTENCY © Luup International Ltd. #23
  • 24. Introducing Luup Consistency Luup Payment Processing Platform Employee UI End user UI SMS web site web site / web services server Telco Q Q Q Q Q Q BizTalk MsgBox Partner Partner Bank web Partner Core/BPM Gateway Gateway services MsgBox Gateway http http called with serv Inside circle: Id Core banking Luup system Services © Luup International Ltd. #24
  • 25. Introducing Luup Consistency Luup Payment Processing Platform Employee UI End user UI SMS web site web site / web services server Telco Q Q Q Q Q Q BizTalk MsgBox Partner Partner Bank web Partner Core/BPM Gateway Gateway services MsgBox Gateway http http Throug Core banking Luup system Services h circle: © Luup International Ltd. #25 A
  • 26. Introducing Luup MAINTAINABILITY © Luup International Ltd. #26
  • 27. Introducing Luup Size of Orchestrations • Complex business logic gives complex orchestrations – Results in orchestrations which are hard to: • Understand • Change • Test © Luup International Ltd. #27
  • 28. Introducing Luup Shapes vs C# Code • Use shapes as much as possible? – Results in huge orchestrations which are • Hard to test • Hard to read • Has duplicated logic – Pros • All the logic is visible in the orchestration designer and debugger – Call Orchestration can be used to split out orchestration parts © Luup International Ltd. #28
  • 29. Introducing Luup Shapes Example © Luup International Ltd. #29
  • 30. Introducing Luup Shapes vs C# Code • Or use C# code as much as possible? – Keeps the orchestrations dense and focused – Use the orchestration only for controlling the transaction (at a high level) • Which is the main reason why we needed BizTalk – C# code is easy to unit test © Luup International Ltd. #30
  • 31. Introducing Luup Using Internal Contracts • Vital for having a clean modular architecture • Hide gory details from external systems – Internal contracts which are easier to understand • Mapping complex external contracts • Greatly improves maintainability – Anti-corruption layers • Keeps the core stable even when external services change • Small and reusable orchestrations © Luup International Ltd. #31
  • 32. Introducing Luup Using Internal Contracts Luup Payment Processing Platform Employee UI End user UI SMS web site web site / web services server Telco Q Q Q Q Q Q BizTalk MsgBox Partner Partner Bank web Partner Core/BPM Gateway Gateway services MsgBox Gateway http http Core banking Luup system Services © Luup International Ltd. #32
  • 33. Introducing Luup Using Internal Contracts Contracts Contracts Reusable orchestrations Contracts © Luup International Ltd. #33
  • 34. Introducing Luup Summarizing Maintainability • Keep orchestrations small • Don’t be afraid of using C# code – But be careful about orchestration persistence when changing state in C# code • Use internal contracts © Luup International Ltd. #34
  • 35. Introducing Luup I don’t usually test my code. But when I do, I do it in Production. AUTOMATED TESTS © Luup International Ltd. #35
  • 36. Introducing Luup Unit and Integration Tests • Using unit tests for – Maps – C# code • Integration tests – Using BizUnit for testing orchestrations © Luup International Ltd. #36
  • 37. Introducing Luup Testing Maps – The Built-in Test Func © Luup International Ltd. #37
  • 38. Introducing Luup Testing Maps – The Built-in Test Func • Disadvantages of built-in test functionality: – Compiles maps inheriting from test base class • References test assembly Microsoft.BizTalk.TestTools.dll which must be deployed to production – Exceptions are swallowed • Hard to figure out why a test failed © Luup International Ltd. #38
  • 39. Introducing Luup Testing Maps – Our Solution • Custom-made library • Calls XLANG component to do transformation • Fluent language for writing assertions © Luup International Ltd. #39
  • 40. Introducing Luup Testing Maps – Our Solution Schema validation Field validations © Luup International Ltd. #40
  • 41. Introducing Luup Testing Orchestrations • Complex workflows – Requires automated tests • Custom made fluent interface on top of BizUnit – Reuse of code – Terse tests which are refactor-friendly • Currently we have around 350 BizUnit orchestration tests © Luup International Ltd. #41
  • 42. Introducing Luup Testing Orchestrations - Example [Test] public void RemittanceSend_WhenInvalidBankTransactionDate_ShouldReturnGeneralError() { const string invalidTransactionDate = "12/24/2012"; var testCase = new BizUnitTestCaseBuilder() .WithTestCaseSteps(SharedTestSteps.CreateAndCleanupDirectories()) Initialize the test input file .WithCreateXmlFileStep( new CreateXmlFileStepBuilder(@"TestDataMtoRemittanceSendRequest_ToAccount.xml", SharedConstants.Pgw.ReceiveDirectory + TestContext.CurrentContext.Test.Name + ".xml") .WithUpdateXml("SenderBankTransactionDate", invalidTransactionDate, "//*[local-name()='SenderBankTransactionDate']") ) Wait for orchestration .WithWaitForFileStep(SharedConstants.Pgw.SendDirectory) execution to finish .WithXmlFileValidation(new XmlFileValidationBuilder(SharedConstants.Pgw.SendDirectory) .WithSchemaValidation(@"......SharedBizTalkSchemasPartnerGatewayMtoRemittanceSendResponse.xsd", "http://www.luup.com/schemas/") .WithXPathValidation("ErrorId", MtoRemittanceSendResultCode.GeneralFailure.ToString(), "//*[local-name()='ErrorId']") ) .Build(); Verify the result message var bizUnit = new BizUnit.BizUnit(testCase); bizUnit.RunTest(); } © Luup International Ltd. #42
  • 43. Introducing Luup Build Server Integration • After each code checkin: – Build packages – Deploy all BizTalk applications to a dedicated BizUnit server – Run BizUnit integration tests © Luup International Ltd. #43
  • 44. Introducing Luup Summarizing Automated Testing • The built-in unit testing functionality for maps is no good – Using BizUnit is a better choice • Both maps and orchestrations can and should have automated tests • Build server runs automated tests © Luup International Ltd. #44
  • 45. Introducing Luup Test Environments TFS Build Source Servers Control Code Changes Deployment Production AUTOMATED DEPLOYMENT © Luup International Ltd. #45
  • 46. Introducing Luup Our Deployment Challenges • Our solution consists of about 20 BizTalk applications • 9 test environments • Time consuming deployments to Production © Luup International Ltd. #46
  • 47. Introducing Luup How We Do Deployments • Each application use BizTalk Deployment Framework (BTDF) • Using the Sprinkler framework to control deployment of multiple applications • The build server creates installation packages each time we check in code – Also deploys and runs BizUnit integration tests • Automated deployments to test environments © Luup International Ltd. #47
  • 48. Introducing Luup The Sprinkler Framework • Open source on CodePlex • A set of PowerShell script built on top of BTDF • A bit immature – We had to make a couple of changes to the scripts in order to make it work with Active-Passive clusters • Great when having multiple applications and servers • Great for automated deployment © Luup International Ltd. #48
  • 49. Introducing Luup Deploying to Production • Active-passive cluster • Using Sprinkler for parallel deployment to the nodes • IT Ops handle deployment – Developers should not touch the Production environment © Luup International Ltd. #49
  • 50. Introducing Luup Summarizing Automated Deployment • BTDF and Sprinkler are good frameworks • Automate your deployments • Use the same binaries when deploying to test and production • Deploy early and often © Luup International Ltd. #50
  • 51. Introducing Luup Main Summary • Flexible and scalable solution • Usage of BizTalk both as a traditional integration tool and orchestration of services • Reduce latency by reducing message box roundtrips • Improve maintainability by creating a modularized architecture with clean interfaces • Testing of maps and orchestrations can and should be automated • Automated deployment is useful when having many BizTalk applications © Luup International Ltd. #51
  • 52. Introducing Luup Questions? © Luup International Ltd. #52

Notas del editor

  1. Robust orch – long running transactions with well defined persistance
  2. The main layers: UI, BizTalk and Services (banking and Luup costom made) Separation between Core and PGW in BizTalk PGW is the typical way of using BT Core is about orchestrating the services in the platform
  3. With traditional .Net C# background our team have probably more focus on automation of tests than many others have. Have a culture where refactoring is the norm.
  4. Questions so far?
  5. BizTalk used as an application server for user interfaces Also batch processing Core/BPM vs. PartnerGateway MessageBox for communication
  6. Complext workflows: Enrichment, limits, quotes, user profiles, booking, call external partners Low latency: &lt; 1 sec response time preferred for web and mobile app frontends SMS response times can be longer Performance tuning: - «Test -&gt; Change -&gt; Retest» cycle needed for each changed parameter - Time consuming
  7. This was how we estimated latency before we started the development and it influenced our design decitions
  8. - When using WebRequest: Default limit of 2 outgoing connections to one host (configurable)
  9. Tacoma Narrows Bridge breaking up
  10. Web service calls require idempotent services Can resubmit previously sent requests Requests from UI applications are volatile The user may close the browser or app Transaction will be processed and shown on the transaction history Each partner integration is different Partner Gateway responsible for handling the partners API
  11. Web service calls require idempotent services Can resubmit previously sent requests Requests from UI applications are volatile The user may close the browser or app Transaction will be processed and shown on the transaction history Each partner integration is different Partner Gateway responsible for handling the partners API
  12. How to make the system look less like spaghetti
  13. Duplicated code Too verbose Would be a better option to use .Net code
  14. Hide external details example: Web service request with over 200 optional fields, where we only use about 30 of the fields Separation of concerns Simplifies testing of a components/orchestrations
  15. Zoomin to a part of the system where we use internal contracts
  16. Contracts creating clear bundaries between different parts of the system Internal contracts and reusable orchestration hides compex external webservices Makes it possible to ”hot deploy” new Partner Gateway applications without redeploying the existing applications
  17. http://dosequis.com/
  18. Enabled in the project’s property page
  19. Microsoft.BizTalk.TestTools.dll must be deployed to test servers and to production You want to execute automated tests on the same code which is deployed to production
  20. Could have used BizUnit for testing maps, but the XML format used for defining tests in version 3 of BizUnit was not appealing to use
  21. Create an instance of the mapping class Create an instance of the target schema, which is used when validating the output. The target schema is embedded into this class. Validate mapped fields
  22. A separate BizTalk test application is reading input message from disk and storing result message to disk
  23. Important with quick feedback to the developers Mitigate slowdowns when someone checks in errors by quickly detecting the error Important when many team members work on the same code base
  24. Binaries from a build is always tested by automated tests on the build servers and in our test environments before they are deployed to Production.
  25. BTDF: BizTalk Deployment Framework
  26. Our developers don’t deploy to test environments and production, and don’t have any access rights to the production environment.