Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Â
Intelligent integration with WSO2 ESB & WSO2 CEP
1. Intelligent  Integration  Â
with  WSO2  ESB  and  WSO2  CEP
Sriskandarajah  Suhothayan  (Suho)
Technical  Lead Â
WSO2 Â Inc. Â
     Â
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
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
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
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                                         ?
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;
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 ;
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
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