Knowledge (XXG)

Event-driven SOA

Source đź“ť

275:, marketing automation and customer loyalty solutions, among other features. Business objects model real-world entities in the architecture such as customers, accounts, loans, and travel itineraries. When the state of one of these objects changes, and a monitoring agent notices this change is significant (when compared to the list of criteria to monitor), an event is created and passed to other monitoring agents. 1137: 1127: 262:
Mediation flows are entirely independent from the bindings that are used in the imports and exports. In fact, the purpose of having a conversion into an SDO DataObject instance outside of the flow implementation is because mediation flows can then be built without knowledge of the protocol and format
213:
As messages pass through the ESB, the ESB enriches the messages destined for a channel that is monitoring for a high-level business event. That is, for each message, the ESB may query a database to obtain additional information about some data entity within the message. For example, based on Customer
184:
Business analysts can infuse additional defining detail through an SQL query statement attached to a rule or event context. The CVE app works much like a modern-day stock trading application that mutual funds managers use to manage risk. An example of a CVE application and engine can be seen in SILK.
31:
offerings. Before event-driven SOA, the typical SOA platform orchestrated services centrally, through pre-defined business processes, assuming that what should have already been triggered is defined in a business process. This older approach (sometimes called SOA 1.0) does not account for events that
160:
based on structural and temporal rules written into the engine. Perception of complex causal semantics, such as additive, mediated, and bidirectional causalities need to be coded so that the engine can distinguish between events that are related and those that only appear to be related but, in fact,
64:
Long running processing capability enables the architecture to collect various asynchronous events over a long period of time and correlate these events into causal relationships. SOA 2.0 event patterns can be designed and implemented to look for event relationships that span days, weeks, or months;
180:
The Sequential window shows events in date-timestamp order, one or more other windows in various orders as the CVE works through the list of rules and creates implied relationships between the events. Various buttons and controls exist in the console application that enable the business analysts to
168:
to code the relationship among the events and establishes a partial order in which it validates the causality perceived between multiple occurrences. The engine plays and replays the event sequence in different temporal order to infer what could be related topological connections and compares these
76:
between event producers and event consumers: an event consumer doesn't care where or why an event occurs; rather, it's concerned that it will be invoked when the event has occurred. Systems and applications that separate event producers from event consumers typically rely on an event dispatcher, or
305:
For example, you could construct a CRM event from an "abandoned shopping cart" message (parsing the transaction, customer ID, and time), using other filters to extract the value of goods in the cart and tapping the correlation capabilities of the system to add causal indicators such as whether the
291:
A triggered business process should directly support revenue growth with cost containment, responsiveness to business conditions, or ability to pursue new market opportunities. Resulting business processes could also measure operational progress toward achieving goals, control operational costs by
125:
Choreography on the other hand does not rely on a central coordinator. Rather, each SOA 2.0 service involved in the choreography knows exactly when to execute its operations (based on defined trigger criteria) and whom to interact with. Choreography is a collaborative effort focused on exchange of
282:
Automatic monitoring of events in operational business process activities as processes execute to see if any immediate action needs to be taken either inside or outside the enterprise. These monitoring agents continually test for specific business conditions and changes in business operations. If
56:
In practice, this relationship of streamed events is processed through a causal vector engine, which performs a lookup based on recently viewed events and assigns a causal vector to an event if a relationship is discovered. If A causes B, the causal vector engine checks if B’s causal vector rule
278:
For example, the detection of an actual business problem or opportunity could lead to increased revenue. If a customer cancels an order, extra manufacturing capacity could reduce the profitability of the production run. A SOA 2.0 event could notify marketing department to create a special sales
176:
Multiple low-level system events are processed by the Causal Vector Engine and compared against these rules to trigger higher-level Business Events. It does this through a Causality Vector Engine (CVE) console application which displays events in real-time to business analysts. Where streams of
40:
SOA 2.0 architecture, ("event-driven SOA"), lets business users monitor, analyze, and enrich events to make the connections among disparate events that do not at first appear to be intuitively obvious. This makes these enriched events visible to others, especially business analysts or marketing
209:
also supports mediation flows. Mediation flows modify messages that are passed between existing services and clients that use those services. A mediation flow mediates or intervenes to provide functions, such as message logging, data transformation, and routing, typically the functions can be
52:
If it's clear, through the enriched events that are produced by an SOA 2.0 environment, that customer shopping cart abandonment rate has escalated in the last few days, a notification to the marketing department could initiate research into what competitors have done to cause customers to buy
121:
and choreography. In orchestration, a central process takes control over the involved web services and coordinates the execution of different operations on the web services involved in the operation. The involved SOA 2.0 services do not know (and do not need to know) that they are part of a
387:
Domain algorithms, such as fever/flu/infection domain logic in the cited reference, are used to derive SQL code that applies the selected business rules to the use case. Using CVEs in SOA environments improve business agility because the application of SOA 2.0 principles identify business
60:
Unlike sequential or procedural systems (in which clients must poll for change requests), event-driven SOA allows systems and components to respond dynamically, in real time, as events occur. SOA 2.0 complements and extends SOA 1.0 by introducing long-running processing capabilities.
44:
SOA 2.0 is the ability to create high-level business events from numerous low-level system events. Events are created by filtering real-time data (from middleware, applications, databases, and Web services, for example) and infusing it with defining detail such as dependencies or
314:
For another example, based on the types of independent service calls received, the SOA 2.0 platform could identify a product defect by detecting the underlying pattern of the separate complaints, then triggering an alert to engineering or production of the possible defect.
148:
Causal relationships are inherent in the world around us and are intrinsic to our decision making. The human intelligence processes and gathers these relationships faster than current artificial computational capability can. One of the fundamental obstacles in
391:
Functional magnetic resonance imaging (fMRI) using Granger causality analysis (GCA) detects causal effects among brain regions. The results of one sample test demonstrated positive causal effect between rFIC and the dorsal anterior cingulate cortex (dACC).
258:
in order to access and utilize data. Through SDO, developers simply work with data from multiple data sources, such as relational databases, entity EJB components, XML pages, Web services, the Service Component Architecture, and JavaServer Pages pages.
177:
events can be observed as they occur, much like a stock ticker, the CVE console app has several windows that list the same events in different contexts, so the business analysts can see what the CVE is doing with the relationships between them.
214:
ID, the ESB mediation flow could get the zip code that the customer resides in. Or, based on IP address of the originating request by the end-user, the ESB mediation flow could lookup what country, state or county that IP address is in.
32:
occur across, or outside of, specific business processes. Thus complex events, in which a pattern of activities—both non-scheduled and scheduled—should trigger a set of services is not accounted for in traditional SOA 1.0 architecture.
122:
composition or a higher business process. Only the central coordinator of the orchestration knows this, so the orchestration is centralized with explicit definitions of operations and the order of invocation of SOA 2.0 services.
474:"E. Curry, D. Chambers, and G. Lyons, "Extending Message-Oriented Middleware using Interception", presented at Third International Workshop on Distributed Event-Based Systems (DEBS '04), ICSE '04, Edinburgh, Scotland, UK, 2004" 233:(SCA). Like any SCA component, the program accesses a mediation flow through exports that it provides, and the mediation flow forwards messages to other external services via imports. Special kinds of imports and exports for 237:, called JMS bindings, enable developers to specify the binding configuration and write data handling code. The mediation flow consists of a series of mediation primitives that manipulate messages as they flow through the 404:
uses a set of theoretical models, each of which evaluates some or all of the data. When a business analyst configures causal factors, he/she specifies criteria indicating which models should consider which causal factor.
331:
facility. By implementing ESB functionality as Pub/Sub messages, no advanced knowledge of system events is needed to create SOA 2.0 message patterns. After an enterprise has implemented many Publish functions, SOA
217:
These examples represent data enrichment, the concept of adding additional value to existing data, based on the intent of the high-level business event to eventually be triggered.
401: 248:
assembly editor, this is done by the JMS Custom Binding Mediation Component where each operation on the flow component's interface is represented by a request and a response.
92:
that, separately, do not appear to have any relationship, but through pattern detection by comparing these many events some unusual or less obvious correlation becomes clear;
126:
messages. All participants of the choreography need to be aware of the business process, operations to execute, messages to exchange, and the timing of message exchanges.
540:
Zang, ZX; Yan, CG; Dong, ZY; Huang, J; Zang, YF (2012). "Granger causality analysis implementation on MATLAB: a graphic user interface toolkit for fMRI data processing".
283:
necessary, the agents alert people, make recommendations, send messages to other applications or invoke whole business processes when such conditions or changes occur..
379:
transactions. The creation of additional stored procedures is accomplished through the CVE console application or by using any standard database developer's toolkit.
1171: 613: 336:
can set about the task of strategizing which of the available Publish messages could be assembled into a unique pattern to detect an SOA 2.0-enriched trigger.
1166: 57:
index contains a reference to A. The engine may handle events for different transactions simultaneously, perhaps in a different order than they occurred.
254:(SDO) framework provides a unified framework for data application development. With SDO, developers do not need to be familiar with any specific 106:
which when not met, the business-level event is not created, but when the trigger condition is met, the higher-level business event is created;
244:
Once the developers have coded the custom binding for both export and import, they can start to focus on the mediation flow component. In the
996: 925: 53:
products elsewhere. Was there a common product in most shopping carts? If so, what are the prices that are being offered by the competition?
819: 722: 473: 165: 306:
commerce site was suffering performance problems. Your CRM event might also include customer value or rank from the customer database...
129: 606: 799: 666: 651: 419: 255: 292:
communicating just what is needed to just who needs to know, or report performance status of key processes to key decision makers.
456: 1130: 955: 882: 872: 717: 646: 230: 28: 1006: 1140: 935: 877: 599: 414: 20: 945: 804: 671: 77:
channel. This channel contains an event queue that acts as an intermediary between event producers and event handlers.
867: 862: 676: 245: 1062: 910: 905: 857: 834: 814: 41:
directors, and also allows the SOA 2.0 system to possibly automate actions to take to address some unique pattern.
1067: 1057: 118: 24: 970: 769: 752: 661: 585:
Oracle Business Intelligence engine makes extensive use of temporal data in historical and future time buckets.
133: 69: 920: 764: 150: 99:
by infusion of related information to each event to more clearly illustrate how the many events are related;
279:
campaign that would resell the excess capacity, thereby recapturing the original profitable cost-per-unit.
975: 732: 727: 324: 238: 226: 194: 1161: 794: 747: 582: 272: 153:
is the absence of an automated ability to relate events together as when a human uses human intuition.
1092: 930: 789: 779: 691: 636: 622: 251: 234: 181:
create relationships between events on-the-fly and define rules that respond to these relationships.
1112: 1097: 965: 829: 737: 681: 1102: 742: 565: 333: 170: 480: 1016: 774: 557: 440: 328: 202: 132:
follows the orchestration paradigm. Choreography is covered by other standards, such as WSCI
1087: 1031: 809: 701: 696: 549: 344: 198: 156:
Using a Causal Vector Engine, the perception of causality can be enhanced under appropriate
65:
and when certain criteria are met, trigger a business process to address the event pattern.
271:
A business-level trigger condition enables the SOA 2.0 architecture to establish real-time
1107: 960: 940: 824: 686: 460: 206: 157: 503: 339:
Causal Vector Engine (CVE) mechanics are implemented simply, with an expandable view of
1011: 915: 656: 73: 1155: 991: 759: 527: 515: 569: 453: 1026: 1021: 950: 553: 367:
that increments a counter of all transactions that occurred within a timeframe,
1036: 1001: 388:
opportunities that would have otherwise been missed or identified much later.
364: 46: 561: 784: 360: 591: 641: 583:
http://docs.oracle.com/cd/E18727_01/doc.121/e05136/T485796T488110.htm
137: 85:
The prototypical SOA 2.0 paradigm contains four essential elements:
841: 1052: 595: 263:
with which messages are sent to and from the mediation module.
340: 23:(SOA), combining the intelligence and proactiveness of 504:
http://bicep.dei.uc.pt/images/5/58/FINCoS_DEBS2008.pdf
166:
preponderant causal vector rate-of-change propagation
103: 89: 1080: 1045: 984: 898: 891: 850: 710: 629: 210:implemented using the Interception Design Pattern. 528:http://people.cis.ksu.edu/~bbp9857/bbp_hicss05.pdf 516:http://people.cis.ksu.edu/~bbp9857/bbp_hicss05.pdf 229:mediation flow is one of the component types in a 140:(Web Services Choreography Description Language). 117:SOA 2.0 Web Services can be composed in two ways: 113:that is invoked when the trigger event is reached. 454:http://silk.semwebcentral.org/gui-ruleml-2010.pdf 323:One mechanism that can be used from most SOA 1.0 197:(ESB) implementations contain a facility called " 201:". For example, mediation flows are part of the 110: 27:with the organizational capabilities found in 607: 8: 463:Causal Vector Engine GUI as Eclipse plug-in. 895: 614: 600: 592: 530:Causal Vector Engine medical domain logic. 518:Causal Vector Engine algorithmic toolkit. 805:Software development process/methodology 49:discovered by correlating other events. 432: 1172:Service-oriented (business computing) 169:replays to rules preprogrammed by an 134:(Web Services Choreography Interface) 7: 1126: 820:Software verification and validation 723:Component-based software engineering 96: 72:is structured around the concept of 1167:Enterprise application integration 355:, and causality must occur within 14: 800:Software configuration management 667:Search-based software engineering 652:Experimental software engineering 420:Enterprise Mashup Markup Language 1136: 1135: 1125: 267:Business-level trigger condition 203:WebSphere enterprise service bus 144:Multiple low-level system events 90:multiple low-level system events 246:WebSphere Integration Developer 647:Empirical software engineering 554:10.1016/j.jneumeth.2011.10.006 231:Service Component Architecture 1: 415:Service-oriented architecture 361:SQL ORDER BY timestamp clause 359:number of transactions, then 81:Prototypical SOA 2.0 paradigm 21:service-oriented architecture 672:Site reliability engineering 506:Causal Vector Engine design. 402:Oracle CVE Analytical Engine 396:Oracle Business Intelligence 677:Social software engineering 296:SOA 2.0 conceptual examples 1188: 815:Software quality assurance 287:Resulting business process 1121: 158:spatiotemporal conditions 25:event-driven architecture 971:Model-driven engineering 770:Functional specification 753:Software incompatibility 662:Requirements engineering 109:some human or automated 70:event-driven programming 765:Enterprise architecture 327:implementations is the 319:SOA 2.0 implementations 301:Abandoned shopping cart 151:artificial intelligence 74:decoupled relationships 976:Round-trip engineering 733:Backward compatibility 728:Software compatibility 441:"Make way for SOA 2.0" 325:Enterprise Service Bus 195:enterprise service bus 795:Software architecture 748:Forward compatibility 273:customer intelligence 1093:Computer engineering 790:Software archaeology 780:Programming paradigm 692:Software maintenance 637:Computer programming 623:Software engineering 542:J. Neurosci. Methods 383:Medical applications 252:Service Data Objects 47:causal relationships 1113:Systems engineering 1098:Information science 878:Service orientation 830:Structured analysis 738:Compatibility layer 682:Software deployment 371:number of matching 334:middleware analysts 1103:Project management 868:Object orientation 835:Essential analysis 743:Compatibility mode 459:2013-05-21 at the 310:Engineering defect 1149: 1148: 1076: 1075: 1017:Information model 921:Incremental model 775:Modeling language 345:stored procedures 329:publish/subscribe 104:trigger condition 1179: 1139: 1138: 1129: 1128: 1088:Computer science 896: 810:Software quality 702:Systems analysis 697:Software testing 616: 609: 602: 593: 586: 580: 574: 573: 537: 531: 525: 519: 513: 507: 501: 495: 494: 492: 491: 485: 479:. Archived from 478: 470: 464: 451: 445: 444: 437: 164:The engine uses 17:Event-driven SOA 1187: 1186: 1182: 1181: 1180: 1178: 1177: 1176: 1152: 1151: 1150: 1145: 1117: 1108:Risk management 1072: 1041: 980: 961:Waterfall model 931:Prototype model 926:Iterative model 887: 863:Aspect-oriented 846: 825:Software system 706: 687:Software design 625: 620: 590: 589: 581: 577: 539: 538: 534: 526: 522: 514: 510: 502: 498: 489: 487: 483: 476: 472: 471: 467: 461:Wayback Machine 452: 448: 439: 438: 434: 429: 411: 398: 385: 378: 374: 370: 358: 354: 350: 321: 312: 303: 298: 289: 269: 223: 221:Mediation flows 191: 189:Data enrichment 146: 97:data enrichment 95:some amount of 83: 38: 12: 11: 5: 1185: 1183: 1175: 1174: 1169: 1164: 1154: 1153: 1147: 1146: 1144: 1143: 1133: 1122: 1119: 1118: 1116: 1115: 1110: 1105: 1100: 1095: 1090: 1084: 1082: 1081:Related fields 1078: 1077: 1074: 1073: 1071: 1070: 1065: 1060: 1055: 1049: 1047: 1043: 1042: 1040: 1039: 1034: 1029: 1024: 1019: 1014: 1012:Function model 1009: 1004: 999: 994: 988: 986: 982: 981: 979: 978: 973: 968: 963: 958: 953: 948: 943: 938: 933: 928: 923: 918: 916:Executable UML 913: 908: 902: 900: 893: 889: 888: 886: 885: 880: 875: 870: 865: 860: 854: 852: 848: 847: 845: 844: 839: 838: 837: 827: 822: 817: 812: 807: 802: 797: 792: 787: 782: 777: 772: 767: 762: 757: 756: 755: 750: 745: 740: 735: 725: 720: 714: 712: 708: 707: 705: 704: 699: 694: 689: 684: 679: 674: 669: 664: 659: 657:Formal methods 654: 649: 644: 639: 633: 631: 627: 626: 621: 619: 618: 611: 604: 596: 588: 587: 575: 532: 520: 508: 496: 465: 446: 443:. 17 May 2006. 431: 430: 428: 425: 424: 423: 417: 410: 407: 397: 394: 384: 381: 376: 375:to occurrence 372: 368: 356: 352: 348: 341:SQL constructs 320: 317: 311: 308: 302: 299: 297: 294: 288: 285: 268: 265: 222: 219: 190: 187: 145: 142: 115: 114: 107: 100: 93: 82: 79: 37: 34: 13: 10: 9: 6: 4: 3: 2: 1184: 1173: 1170: 1168: 1165: 1163: 1160: 1159: 1157: 1142: 1134: 1132: 1124: 1123: 1120: 1114: 1111: 1109: 1106: 1104: 1101: 1099: 1096: 1094: 1091: 1089: 1086: 1085: 1083: 1079: 1069: 1066: 1064: 1061: 1059: 1056: 1054: 1051: 1050: 1048: 1044: 1038: 1035: 1033: 1032:Systems model 1030: 1028: 1025: 1023: 1020: 1018: 1015: 1013: 1010: 1008: 1005: 1003: 1000: 998: 995: 993: 990: 989: 987: 983: 977: 974: 972: 969: 967: 964: 962: 959: 957: 954: 952: 949: 947: 944: 942: 939: 937: 934: 932: 929: 927: 924: 922: 919: 917: 914: 912: 909: 907: 904: 903: 901: 899:Developmental 897: 894: 890: 884: 881: 879: 876: 874: 871: 869: 866: 864: 861: 859: 856: 855: 853: 849: 843: 840: 836: 833: 832: 831: 828: 826: 823: 821: 818: 816: 813: 811: 808: 806: 803: 801: 798: 796: 793: 791: 788: 786: 783: 781: 778: 776: 773: 771: 768: 766: 763: 761: 760:Data modeling 758: 754: 751: 749: 746: 744: 741: 739: 736: 734: 731: 730: 729: 726: 724: 721: 719: 716: 715: 713: 709: 703: 700: 698: 695: 693: 690: 688: 685: 683: 680: 678: 675: 673: 670: 668: 665: 663: 660: 658: 655: 653: 650: 648: 645: 643: 640: 638: 635: 634: 632: 628: 624: 617: 612: 610: 605: 603: 598: 597: 594: 584: 579: 576: 571: 567: 563: 559: 555: 551: 548:(2): 418–26. 547: 543: 536: 533: 529: 524: 521: 517: 512: 509: 505: 500: 497: 486:on 2011-07-26 482: 475: 469: 466: 462: 458: 455: 450: 447: 442: 436: 433: 426: 421: 418: 416: 413: 412: 408: 406: 403: 395: 393: 389: 382: 380: 366: 362: 346: 342: 337: 335: 330: 326: 318: 316: 309: 307: 300: 295: 293: 286: 284: 280: 276: 274: 266: 264: 260: 257: 253: 249: 247: 242: 240: 236: 232: 228: 220: 218: 215: 211: 208: 204: 200: 196: 188: 186: 182: 178: 174: 172: 167: 162: 159: 154: 152: 143: 141: 139: 135: 131: 127: 123: 120: 119:orchestration 112: 108: 105: 101: 98: 94: 91: 88: 87: 86: 80: 78: 75: 71: 66: 62: 58: 54: 50: 48: 42: 35: 33: 30: 26: 22: 19:is a form of 18: 1162:Web services 1027:Object model 1022:Metamodeling 951:Spiral model 851:Orientations 578: 545: 541: 535: 523: 511: 499: 488:. Retrieved 481:the original 468: 449: 435: 399: 390: 386: 338: 322: 313: 304: 290: 281: 277: 270: 261: 250: 243: 224: 216: 212: 192: 183: 179: 175: 163: 155: 147: 128: 124: 116: 84: 67: 63: 59: 55: 51: 43: 39: 16: 15: 718:Abstraction 343:written in 205:intercept. 1156:Categories 1037:View model 1002:Data model 490:2011-08-09 427:References 365:result set 363:creates a 1046:Languages 199:mediation 161:are not. 1141:Category 1007:ER model 873:Ontology 785:Software 711:Concepts 570:44845757 562:22020117 457:Archived 409:See also 68:SOA 2.0 1131:Commons 956:V-model 351:causes 171:analyst 111:process 36:SOA 2.0 29:service 892:Models 642:DevOps 630:Fields 568:  560:  422:(EMML) 138:WS-CDL 1068:SysML 992:SPICE 985:Other 946:Scrum 906:Agile 858:Agile 842:CI/CD 566:S2CID 484:(PDF) 477:(PDF) 347:. If 193:Most 1053:IDEF 997:CMMI 883:SDLC 558:PMID 400:The 207:Mule 136:and 130:BPEL 1063:USL 1058:UML 936:RAD 911:EUP 550:doi 546:203 256:API 239:bus 235:JMS 227:ESB 225:An 1158:: 966:XP 941:UP 564:. 556:. 544:. 241:. 173:. 102:a 615:e 608:t 601:v 572:. 552:: 493:. 377:A 373:B 369:N 357:N 353:B 349:A

Index

service-oriented architecture
event-driven architecture
service
causal relationships
event-driven programming
decoupled relationships
multiple low-level system events
data enrichment
trigger condition
process
orchestration
BPEL
(Web Services Choreography Interface)
WS-CDL
artificial intelligence
spatiotemporal conditions
preponderant causal vector rate-of-change propagation
analyst
enterprise service bus
mediation
WebSphere enterprise service bus
Mule
ESB
Service Component Architecture
JMS
bus
WebSphere Integration Developer
Service Data Objects
API
customer intelligence

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑