Intelligent  Integration    
with  WSO2  ESB  and  WSO2  CEP
Sriskandarajah  Suhothayan  (Suho)
Technical  Lead  
WSO2  In...
Connected  Business  !
Connected  Business  !
Connected  Business  !
Connected  Business  !
To identity
threats &
opportunities
What  to  integrate  ?
In the line of Connected Business there will be many
software systems
• Enterprise Resource Plannin...
Issues  in  integration
But integrating a multitude of complex software
applications is not an easy task …
• Disparate Sys...
How  could  we  integrate  ?
How  could  we  integrate  ?
Point to point connections ?
How  could  we  integrate  ?
How  could  we  integrate  ?
• Scalability, maintainability, troubleshooting nightmares.
How  could  we  integrate  ?
Solution  …  Bus  !
Solution  …  Bus  !
Integration  Platform  Contains  …
• WSO2 ESB
– Connects anything with every thing
• WSO2 DSS, WSO2 GReg
– Expose data as ...
Integration  
!
!
!
!
!
Cloud On-premise
!
Hybrid
Job  Done  :)
Oops  !
http://islamgreatreligion.files.wordpress.com/2012/11/gaza-16-nov.jpg
The  Prevention  …  ?
• Monitor !
• Monitor !
• Monitor !
The  next  mile  ...  !
Monitor and …
• Take reactive action
• Predict future & take preventive measures
• Auto recovery a...
Is  it  working  as  expected  ?
• The load of the system
!
It can be
The  solution  should  be
• A realtime system
• Capable of processing data on the fly
• Notify alerts in vario...
What  is                                                                                ?
How  ESB  integrates  with  CEP?
How  CEP  integrates  with  ESB?
Patterns  
• Monitoring Proxy service/API : QoS (E.g Response time)
• In Message Store & forward : Managing the Queue
• Mo...
Monitoring  QoS  on  Proxy  Services  &  APIs  
Monitoring response time
define stream ResponseTimeStream ( !
! arrivalTime long, departureTime long, !
! correlationID string, serviceID string, …...
Tuning  Message  Store  and  Forward  
• Monitoring the Message Queue
Tuning  Message  Store  and  Forward  
define stream QueueStatStream ( queueID string, size long ) ;!
!
define partition Q...
Monitoring  ESB  routing  and  Scaling
Monitoring  ESB  routing  and  Scaling
define stream RequestStream ( ! !
! correlationID string, serviceID string, !
! end...
Intelligent  Scaling  on
Throttling  &  Blacklisting  users
Throttling  &  Blacklisting  users
define stream RequestStream ( correlationID string, serviceID string, !
! ! userID stri...
Throttling  &  Blacklisting  users
define stream RequestStream ( correlationID string, serviceID string, !
! ! userID stri...
Throttling  &  Blacklisting  users
define stream RequestStream ( correlationID string, serviceID string, !
! ! userID stri...
Patterns  
• Monitoring Proxy service/API : QoS (E.g Response time)
• In Message Store & forward : Managing the Queue
• Mo...
Patterns  
• Monitoring Proxy service/API : QoS (E.g Response time)
• In Message Store & forward : Managing the Queue
• Mo...
Waiting  for  the  right  time  …  to  pull  trigger
Waiting  for  the  right  time  …  to  pull  trigger
define stream StockOrderRequest ( symbol string, !
! ! ! ! action str...
Fixing  Security  Vulnerabilities  
• Identify Dos attacks
• Analyse login patterns
• Detect credit card fraud
• Blacklist...
Fixing  Security  Vulnerabilities  
Fixing  Security  Vulnerabilities  
define stream PasswordChangeStream (userId string, time
long); !
!
define stream Trans...
!
Better three hours too soon,
than one minute too late.
!
!
!
William Shakespeare
Thank  You  
              Questions ?
Upcoming SlideShare
Loading in...5
×

Intelligent integration with WSO2 ESB & WSO2 CEP

909

Published on

At WSO2Con Europe 2014

Transcript of "Intelligent integration with WSO2 ESB & WSO2 CEP "

  1. 1. Intelligent  Integration     with  WSO2  ESB  and  WSO2  CEP Sriskandarajah  Suhothayan  (Suho) Technical  Lead   WSO2  Inc.              
  2. 2. Connected  Business  !
  3. 3. Connected  Business  !
  4. 4. Connected  Business  !
  5. 5. Connected  Business  ! To identity threats & opportunities
  6. 6. What  to  integrate  ? In the line of Connected Business there will be many software systems • Enterprise Resource Planning systems (ERP) • Management Information Systems (MIS) • Decision Support Systems (DSS) • Data stores • Legacy systems
  7. 7. Issues  in  integration But integrating a multitude of complex software applications is not an easy task … • Disparate Systems, Services, Protocols • Diverse and dynamic business requirements • No single vendor/solution • On premise/Cloud solutions • Different QoS requirements • Not everyone adhere to standards
  8. 8. How  could  we  integrate  ?
  9. 9. How  could  we  integrate  ? Point to point connections ?
  10. 10. How  could  we  integrate  ?
  11. 11. How  could  we  integrate  ?
  12. 12. • Scalability, maintainability, troubleshooting nightmares. How  could  we  integrate  ?
  13. 13. Solution  …  Bus  !
  14. 14. Solution  …  Bus  !
  15. 15. Integration  Platform  Contains  … • WSO2 ESB – Connects anything with every thing • WSO2 DSS, WSO2 GReg – Expose data as a service, Repository and governance • WSO2 MB – Guaranteed messaging • WSO2 IS – Security, SSO, Role based access control
  16. 16. Integration   ! ! ! ! ! Cloud On-premise ! Hybrid
  17. 17. Job  Done  :)
  18. 18. Oops  ! http://islamgreatreligion.files.wordpress.com/2012/11/gaza-16-nov.jpg
  19. 19. The  Prevention  …  ? • Monitor ! • Monitor ! • Monitor !
  20. 20. The  next  mile  ...  ! Monitor and … • Take reactive action • Predict future & take preventive measures • Auto recovery at failure • Optimum resource utilisation • Ensure security & QoS • Alerts
  21. 21. Is  it  working  as  expected  ? • The load of the system
  22. 22. ! It can be The  solution  should  be • A realtime system • Capable of processing data on the fly • Notify alerts in various forms • Enable enterprise integration
  23. 23. What  is                                                                                ?
  24. 24. How  ESB  integrates  with  CEP?
  25. 25. How  CEP  integrates  with  ESB?
  26. 26. Patterns   • Monitoring Proxy service/API : QoS (E.g Response time) • In Message Store & forward : Managing the Queue • Monitoring Routing : Scaling, Throttling, Blacklisting
  27. 27. Monitoring  QoS  on  Proxy  Services  &  APIs   Monitoring response time
  28. 28. define stream ResponseTimeStream ( ! ! arrivalTime long, departureTime long, ! ! correlationID string, serviceID string, … ) ;! ! from ResponseTimeStream! ! [departureTime - arrivalTime > 2 min]! select correlationID, serviceID! insert into NotificationStream ; Monitoring  QoS  on  Proxy  Services  &  APIs  
  29. 29. Tuning  Message  Store  and  Forward   • Monitoring the Message Queue
  30. 30. Tuning  Message  Store  and  Forward   define stream QueueStatStream ( queueID string, size long ) ;! ! define partition QueuePartition QueueStatStream.queueID;! ! from a1 = QueueStatStream, ! a2 = QueueStatStream[size >a1. size]+! within 2 min! select a1. queueID as queueID, ! ! a1. size as firstSize,! ! a2[last]. size as lastSize! insert into AdjustForwardingProcessStream! partition by QueuePartition;
  31. 31. Monitoring  ESB  routing  and  Scaling
  32. 32. Monitoring  ESB  routing  and  Scaling define stream RequestStream ( ! ! ! correlationID string, serviceID string, ! ! endpointID string, … ) ;! ! from RequestStream! select count(correlationID) as requestCount, ! ! serviceID, true as scaleUp! group by endpointID! having up requestCount > 90! insert into ScaleUpStream ;
  33. 33. Intelligent  Scaling  on
  34. 34. Throttling  &  Blacklisting  users
  35. 35. Throttling  &  Blacklisting  users define stream RequestStream ( correlationID string, serviceID string, ! ! ! userID string, tear string, requestTime long, … ) ;! ! define table BlacklistedUserTable(userID string,! ! ! ! ! time long,requestCount long); !
  36. 36. Throttling  &  Blacklisting  users define stream RequestStream ( correlationID string, serviceID string, ! ! ! userID string, tear string, requestTime long, … ) ;! ! define table BlacklistedUserTable(userID string,! ! ! ! ! time long,requestCount long); ! ! from RequestStream[tear==‘BRONZE’]#window.time(1 min)! select userID, requestTime as time, ! ! count(correlationID) as requestCount! group by userID! having up requestCount > 5! insert into BlacklistedUserTable ;! !
  37. 37. Throttling  &  Blacklisting  users define stream RequestStream ( correlationID string, serviceID string, ! ! ! userID string, tear string, requestTime long, … ) ;! ! define table BlacklistedUserTable(userID string,! ! ! ! ! time long,requestCount long); ! ! from RequestStream[tear==‘BRONZE’]#window.time(1 min)! select userID, requestTime as time, ! ! count(correlationID) as requestCount! group by userID! having up requestCount > 5! insert into BlacklistedUserTable ;! ! from RequestStream[not(userID in BlacklistedUserTable. userID)] ! select *! insert into ApprovedRequestStream ;
  38. 38. Patterns   • Monitoring Proxy service/API : QoS (E.g Response time) • In Message Store & forward : Managing the Queue • Monitoring Routing : Scaling, Throttling, Blacklisting ! • In Load balancing : Fix out of order arrivals • Rules : Temporal
  39. 39. Patterns   • Monitoring Proxy service/API : QoS (E.g Response time) • In Message Store & forward : Managing the Queue • Monitoring Routing : Scaling, Throttling, Blacklisting ! • In Load balancing : Fix out of order arrivals • Rules : Temporal ! • For Business Decisions : KPIs, Usage patterns, 
 Waiting for the right time.. to trigger • Monitoring for Security : Detect Attacks, Credit card fraud, 
 Login patterns, Blacklisting
  40. 40. Waiting  for  the  right  time  …  to  pull  trigger
  41. 41. Waiting  for  the  right  time  …  to  pull  trigger define stream StockOrderRequest ( symbol string, ! ! ! ! ! action string ) ;! define stream StockStream ( symbol string, price double, … ) ;! ! define partition Stocks StockStream.symbol, ! ! ! ! ! ! StockOrderRequest.symbol ;! ! from a1 = StockOrderRequest[action==‘buy’],! ! b1 = StockStream[price<a1.price]+,! ! b2 = StockStream[price>b1.price]! select a1.symbol as symbol, ! ! b1[0].price as firstPrice, ! ! b2.price as orderPrice! insert into PurchaseOrder;! partition by Stocks
  42. 42. Fixing  Security  Vulnerabilities   • Identify Dos attacks • Analyse login patterns • Detect credit card fraud • Blacklisting
  43. 43. Fixing  Security  Vulnerabilities  
  44. 44. Fixing  Security  Vulnerabilities   define stream PasswordChangeStream (userId string, time long); ! ! define stream TransactionStream (userId string, ! amount double, … ); ! ! from every (a1 = PasswordChangeStream) -> ! a2 = TransactionStream[amount >10000] ! within 1 hour! select a1.userId as userId, a2. amount as amount! insert into PotentialFraud ;
  45. 45. ! Better three hours too soon, than one minute too late. ! ! ! William Shakespeare
  46. 46. Thank  You                Questions ?
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×