Presentation is loading. Please wait.

Presentation is loading. Please wait.

Topics in Computer Science: Modern Internet Service Oriented Application Development Lecture 6: Composite Applications Continued Dr. Donald F. Ferguson.

Similar presentations


Presentation on theme: "Topics in Computer Science: Modern Internet Service Oriented Application Development Lecture 6: Composite Applications Continued Dr. Donald F. Ferguson."— Presentation transcript:

1 Topics in Computer Science: Modern Internet Service Oriented Application Development Lecture 6: Composite Applications Continued Dr. Donald F. Ferguson (Admin:

2 Contents

3 Contents Introduction Continuation of Boomi and Activiti
Tentative course agenda Assignment #3 concept Continuation of Boomi and Activiti Boomi – additional concepts Activiti – additional concepts Some hypothetical implementation scenarios Master CRM – store CRM synchronization Bulk store load

4 Topics Connector, Connection, Operation Lego assembly MDM? Technology
Application Lego assembly Box of the form result = command.execute(data) Workflow is control flow of commands updating data Boomi is flow of data through commands Lot’s of overlap in capability MDM?

5 Demos/Scenarios Demos/Concepts Scenarios Business rules
Organization model, roles, capabilities and task assignment Branching on flows based on process state Delegate pattern Scenarios Create address with calls to verification Data bulk load Add movie info with approval Validate or create address when adding employee Business rules

6

7

8

9

10

11

12 As you’ll see in a moment, the configuration of the web service task is far from
easy. Remember that there’s an alternative: implementing a web service client using a Java service task

13

14

15

16

17

18 Esper Task Obervser

19 Backup

20 Components and Composite Applications

21 Introduction

22 APIs Galore

23 Setting the Context – “The World is not Enough.”
The world gives you … You ned to make …

24 Composite Applications – Some Definitions
“In computing, a composite application is a software application built by combining multiple existing functions into a new application. … A composite application consists of functionality drawn from several different sources. The components may be individual selected functions from within other applications, or entire systems whose outputs have been packaged as business functions, modules, or web services.” ( “Composition refers to a way of delivering enterprise solutions by assembling them from prebuilt components, instead of building them from scratch. It also includes personalization and customization abilities, so that users can easily and quickly modify specific functionality in the solution.” ( us/library/bb aspx) “A composite application orchestrates independently developed programs, data and devices to deliver a new solution that none of the previously available applications could deliver on its own. Each resource accessed by a composite application uses a different data model. In most cases, the composite application supports user interactions beyond those provided by the leveraged applications. In other cases, a composite application may act as a service. Some composite applications are built by leveraging other composite applications.” (

25 Composite Applications – Some Pictures

26 Setting the Context You have learned
How to build a reusable “component” That surfaces a well-defined, reusable API And how to monitor, trace, manage and secure the API. Any moderately sized company or organization, there are Thousands of internal APIs. 100s of published APIs. 100s of consumed, public, external APIs Tens (or hundreds) of thousands of available, external, public APIs. By and large, Application development involves Controlling the ordering, flow and execution (if … then, while … do, etc) using “code” Of API calls (JDBC, class libraries, etc.) Modern, Internet SOA Application Development involves New techniques for controlling the ordering, flow and execution Of “web” callable APIs.

27 Composition Diagrams Control Flow Structure Data Flow
The diagrams are always “nodes” and “arcs.” Structure: node A <x> node B, where x is Requires/depends/calls/synchronizes with/… Control: Execute A and then execute B, where A and B are tasks. There is a shared set of “data objects” the tasks manipulate. Data flow: Do A to the message/document/… and then do B to A’s output

28 Simplistic Taxonomy of Integration
UI Information ETL, MapReduce Federated DB Message/ Event CEP/CPE Message Flow RT events Orchestration Workflow Human Centric Automation

29 Modeling, Visual Notation, Executable Models
Development projects tend to be systematic or opportunistic. Opportunistic projects and some systematics project team will tell you that they do not use modeling because We tried it and it did not work. Too slow and too much time. We are agile and want to get to the code. That’s the way old guys do it. I ask the following questions Do you have meetings and scrums? Do you use a whiteboard? Do you draw diagrams? Does someone copy down the information and convert to PPT or diagrams? Do you take pictures of the whiteboard? Do you the pictures and PPT? Do you realize you are doing modeling, just poorly? My view A model and visual notation is like PPT, but there is precise and consistent interpretation of shapes, colors, symbols, … Like PPT, there is an underlying file format/schema for the diagram. An executable model has a file format that is complete enough (with possible editing) that some engine can interpret the file the same way that a JVM interprets bytecodes or a CPU interprets instructions.

30 Three Core Concepts “Engine” Editor “Program” Visual Notation Diagram

31 Of Course, maybe that’s just me …

32 Structure Composition Diagrams

33 Service Component Architecture

34 Flexible Implementation – Some of which we will Cover

35 Eclipse SOA SCA Tool

36 OSGi Blueprint are Similar

37 OSGi Blueprints

38 Comments Structural composition and models is a recurring concept
OSGi SCA J2EE dependency references Camel UML Module and Component Diagrams etc. The concept waxes and wanes in popularity, and seems to be waning. The explosion of micro-services and ad hoc applications. Structure integrated into behavior composition More dynamic, query based binding We will not spend more time on the topic.

39 Data Flow Composition

40 Point-to-Point Connections are Bad
Doing this … Leads to this … …

41 Q&A Discussion

42 Setting the Context

43 An “Old Cranky Guy” Example SCA

44 Three Core Composition Models
Structure What are the APIs, and possibly components, that I need? For example, a commerce application needs Content management system for images, manuals, how-to videos, … Catalog systems for products, sub-products, prices, … Inventory management Credit card processing Customer account and relationship management And what gets connected to what, and how. Behavior Data flow Updating thing T in component C needs to Send an update(Q) thin in component B and D But I need to split the data because B and D only need some of T And I need to remap the data because B and D have different schema for “T” stuff. Control flow: Opening a new credit card requires things to happen in order Validate the application is correct Perform a credit check Call a system to create a risk score Have an analyst approve the application Send an to the customer for approval Send a message to the place that is going to make the card … … People like diagrams. But tend to use similar diagrams types for all composition. And be inconsistent about what symbols means

45 You Have Already Seen the Pattern
This is the same pattern as API Mgmt But … What happens in the “proxy” is a lot more complicated. The relationship between the proxy and the APIs Is many-to-many And has data flow or sequencing.

46 Integration is Purple Boomi Example

47 Enterprise Integration Patterns with WSO2 ESB https://docs. wso2

48 More Examples

49 More Examples

50 How do you Build the Composite
Take off a palette Set properties Put on canvass Set control values Connect flow

51 Composition Each “clipart widget” has For example,
A unique, documented shape (visual notation). A little implementation piece of code (think POJO) that does the function. Rules about what other widgets can connect to it/from it. A set of properties that tailor this instance’s behavior For example, When I drag a routing widget onto the canvass to make a routing instance I specify The valid, input JSON format. A the routing rule table {“Person.iq” <= 50; {“Person.color” == “Yellow”; And connect to other things on the palette

52 Dell Boomi

53 Test Drive

54 Workflow/ BPMN

55 BPMN BPMN 2.0 is an international standard for business process modeling. The BPMN specification describes how the elements of a process diagram have to look like (notation), how these can be combined with each other (meta model / syntax), what a diagram means (semantics) and how diagrams can be transferred from one tool to another (XML interchange format). Process models describe sequences of business activities from start to finish, e.g. Order-to-Cash, Account Open

56 BPMN and Activiti Some terms This is
BPMN 2.0 is a standard for defining/documenting workflows/orchestrations. Activiti (and many others) are implementations of the standard Runtime engine that can interpret and execute a BPMN process A WYSIWYG editor With prebuilt, configurable shapes palette that extend base BPMN shapes. Huh? BPMN has the concepts of a “Task,” which is one “step” in a process. But in a process model, this is just “prose” like “Order a Pizza” Implementations come with “common” types of tasks, e.g. Make an SQL call on a database. Call a REST API Put a document on a worklist etc. A composition canvass for assembling shapes into processes. Debugger, monitoring, reporting, versioning, etc. This is The same concept as enterprise integration patterns and Boomi But, The clipart is different And the graph mostly represents “control flow,” not data flow.

57 Simple BPMN Diagram

58 BPMN Symbols

59 BPMN Symbols

60 BPMN Symbols

61 BPMN Symbols

62 BPMN Symbols

63 BPMN Symbols Lots more go here. There are references, e.g.

64 BPMN Symbols

65 BPMN Symbols Seriously dude? There are references, e.g.

66 BPMN Symbols

67 And You can Define Processes

68 How do you Implement? Send an email. POST a document etc.
Notify a person/role. Have them do something. Have the use an app that calls the engine to tell you they are done. Decision table Call Drools etc. Insert into a DB Call a web service Run a Java app. etc. Run some JavaScript or Java or … Right at this point in the workflow/process And manipulate the data/documents/control.

69 User Task

70 Script Task

71 Service Task

72

73

74

75

76

77

78

79

80 Comments Three Core Aspects of BPMN and Actviti
Human Centric Workflow Define an organization model Users, Groups Properties for users and groups Define workflow processes that have Human Tasks. For each Human Task Define the form and data that enables a person to perform the task. Define “rules” for assigning a task to people or groups. Automation/Orchestration Implement a set of POJOs implementing the Delegate interface. Each POJO implements an automation action by … Call a REST service Sending a message on JMS or SQS Etc. Define a workflow with one or more Service Tasks. For each Service Task Specify/bind to a Delegate. Map process data variables to inputs and outputs of the Delegate.

81 AWS Simple Workflow

82 Amazon Simple Workflow

83 Application Structure
Role of the Activities Worker: The activities worker performs the various tasks that the workflow must accomplish. It consists of: The activities implementation, which includes of a set of activity methods that perform particular tasks for the workflow. An activity worker, which uses HTTP long poll requests to poll Amazon SWF for activity tasks. When a task is available, Amazon SWF responds to the request by sending the information required to perform the task. The activity worker then calls the appropriate activity method, and returns the results to Amazon SWF. Role of the Workflow Worker: The workflow worker orchestrates the execution of the various activities, manages data flow, and handles failed activities. It consists of: The workflow implementation, which includes the activity orchestration logic, handles failed activities, and so on. An activities client, which serves as a proxy for the activities worker and enables the workflow worker to schedule activities to be executed asynchronously. A workflow worker object, which uses HTTP long poll requests to poll Amazon SWF for decision tasks. If there are tasks on the workflow task list, Amazon SWF responds to the request by returning the information that is required to perform the task. The framework then executes the workflow to perform the task and returns the results to Amazon SWF.

84 Assignment 3

85 Backup


Download ppt "Topics in Computer Science: Modern Internet Service Oriented Application Development Lecture 6: Composite Applications Continued Dr. Donald F. Ferguson."

Similar presentations


Ads by Google