Your SlideShare is downloading. ×

Intelligent integration with WSO2 ESB & WSO2 CEP

750

Published on

At WSO2Con Europe 2014

At WSO2Con Europe 2014

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
750
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
42
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Intelligent  Integration     with  WSO2  ESB  and  WSO2  CEP Sriskandarajah  Suhothayan  (Suho) Technical  Lead   WSO2  Inc.              
  • 2. Connected  Business  !
  • 3. Connected  Business  !
  • 4. Connected  Business  !
  • 5. Connected  Business  ! To identity threats & opportunities
  • 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. 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. How  could  we  integrate  ?
  • 9. How  could  we  integrate  ? Point to point connections ?
  • 10. How  could  we  integrate  ?
  • 11. How  could  we  integrate  ?
  • 12. • Scalability, maintainability, troubleshooting nightmares. How  could  we  integrate  ?
  • 13. Solution  …  Bus  !
  • 14. Solution  …  Bus  !
  • 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. Integration   ! ! ! ! ! Cloud On-premise ! Hybrid
  • 17. Job  Done  :)
  • 18. Oops  ! http://islamgreatreligion.files.wordpress.com/2012/11/gaza-16-nov.jpg
  • 19. The  Prevention  …  ? • Monitor ! • Monitor ! • Monitor !
  • 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. Is  it  working  as  expected  ? • The load of the system
  • 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. What  is                                                                                ?
  • 24. How  ESB  integrates  with  CEP?
  • 25. How  CEP  integrates  with  ESB?
  • 26. Patterns   • Monitoring Proxy service/API : QoS (E.g Response time) • In Message Store & forward : Managing the Queue • Monitoring Routing : Scaling, Throttling, Blacklisting
  • 27. Monitoring  QoS  on  Proxy  Services  &  APIs   Monitoring response time
  • 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. Tuning  Message  Store  and  Forward   • Monitoring the Message Queue
  • 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. Monitoring  ESB  routing  and  Scaling
  • 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. Intelligent  Scaling  on
  • 34. Throttling  &  Blacklisting  users
  • 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. 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. 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. 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. 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. Waiting  for  the  right  time  …  to  pull  trigger
  • 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. Fixing  Security  Vulnerabilities   • Identify Dos attacks • Analyse login patterns • Detect credit card fraud • Blacklisting
  • 43. Fixing  Security  Vulnerabilities  
  • 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. ! Better three hours too soon, than one minute too late. ! ! ! William Shakespeare
  • 46. Thank  You                Questions ?

×