Application development in a Service Oriented Architecture

Size: px
Start display at page:

Download "Application development in a Service Oriented Architecture"

Transcription

1 Application development in a Service Oriented Architecture Fontys Venlo Software Engineering Colloquium November 28 th, 2007 Frank Dorst, directeur

2 November 28, Whitehorses B.V. 2

3 From Spaghetti to Lasagna Whitehorses History of IT architectures Why SOA Components SOA Development Life Cycle The future? Skills, skills, skills Q&A November 28, Whitehorses B.V. 3

4 About Whitehorses November 28, Whitehorses B.V. 4

5 Who is Whitehorses? Expertise in Oracle & Java sinds 2001 Pillars: People business Innovation - Java & Oracle Knowledge transfer: Special Interest Groups, knowledge days, forum, WIKI, etc. Partnering Whitebooks (in Dutch: Whitehorses Technology Seminars Focus areas: Application and Service Development High available architecture Integration (application, process and content) } SOA architectuur November 28, Whitehorses B.V. 5

6 Whitehorses expertise Business Intelligence Security Products Oracle Platform Business & IT Oracle Developer Tools (Enterprise) Java Information Security Information Security Business Intelligence Business Intelligence Solutions / Products Solutions / Products Business & IT Business & IT Oracle Platform (DB + AS) Oracle Platform (DB + AS) Oracle Developer Tools Oracle Developer Tools (Enterprise) Java (Enterprise) Java Partner Partner November 28, Whitehorses B.V. 6

7 Whitehorses services Business Intelligence Security Products Oracle Platform Business & IT Oracle Developer Tools (Enterprise) Java Projects Information Security Information Security Business Intelligence Business Intelligence Solutions / Products Solutions / Products Expert services Support and management Business & IT Business & IT Oracle Platform (DB + AS) Oracle Developer Tools Oracle Developer Tools (Enterprise) Java (Enterprise) Java Business Consulting Partner Partner November 28, Whitehorses B.V. 7

8 Service Oriented Architectuur Why? November 28, Whitehorses B.V. 8

9 Service Oriented Architectures (SOA) is one of the most important IT topics of the moment November 28, Whitehorses B.V. 9

10 Service Oriented Architectures (SOA) is one of the most important IT topics of the moment November 28, Whitehorses B.V. 10

11 Even in Dutch, the IT meaning of SOA gets a page 1 result in Google! November 28, Whitehorses B.V. 11

12 History of the IT landscape November 28, Whitehorses B.V. 12

13 In the beginning Accounting Applications are are developed independently and and using using proprietary technology. This This resulted in in application islands. Information is is shared shared by by printing and and re-typing Projects November 28, Whitehorses B.V. 13

14 Later: interfacing Extract program, FTP file, Import program Accounting Advanced interface programs are are developed and and run run in in batch batch windows at at night. night. A change in in application A is is propagated to to the the other other application the the next next day, day, or or even even later. later. Projects November 28, Whitehorses B.V. 14

15 Increasing complexity Sales Accounting Every Every new new application introduces new new complexity and and new new interfaces, each each with with it s it s own own technology and and needing it it own own expertise Projects CRM November 28, Whitehorses B.V. 15

16 Spaghetti Integration Sales Web shop Accounting Lots Lotsof of work workadding addingnew newapplications Lots Lotsof of work workwhen whenchanging 1 applications Every Everyapplication it s it sown owntechnology 1-on-1 1-on-1 interfaces = dependencies (what (what happens if ifone oneapplication is is down) down) Manual interfaces = errors errors Projects Product catalog Stock management CRM November 28, Whitehorses B.V. 16

17 Enterprise Application Integration (EAI) Sales Web shop Accounting Message HUB HUB HUB and and Spoke Spoke Architecture Event Event driven driven and and message orientated Only Only 1 interface point point per per application Central message center center Easy Easy to to expand but but still still very very technical Projects Product catalog Stock management CRM November 28, Whitehorses B.V. 17

18 Service Orientation: put the business process central November 28, Whitehorses B.V. 18

19 Automating the business process An example CRM CRM SCM Run Marketing Campaign Engage the Customer Enter the Order SCM SCM FIN Check Inventory Ship the Order Invoice the Customer FIN Receive Payment FIN Collect from Customer CRM Deliver Ongoing Support November 28, Whitehorses B.V. 19

20 Demand: flexible business processes Interface points # # # CRM SCM FIN CRM All applications are managed within the organization. Interface points are (often) managed point-to-point. CRM: Customer Relationship Management SCM: Supply Chain Management FIN: Finance (accounting) November 28, Whitehorses B.V. 20

21 The challenge: Extended Enterprise Customer Enter Order Company Shared Service Supplier Callcenter Ship Order Send Bill Outsourced Receive Payment Business Process Outsourcing: parts of the functionality of the business process is outsourced to companies who can do it better and/or cheaper November 28, Whitehorses B.V. 21

22 Business Process Management (BPM) Business Process Execution Begin Camp. Call ct Enter ord Check Send bill Ship Receive Support End Customer Company Enter Order Service Oriented Architecture Campaign Check Credit Support Shared Service Callcenter Send Bill Supplier Ship Order Outsourced Receive Payment November 28, Whitehorses B.V. 22

23 Advantages of Service Oriented Architecture Flexibility Changes in organization, legislation, etc. Repeat success Re-use existing services and business processes Real time insight in processes Business Activity Monitoring Increase Quality Productivity Reduce Cost November 28, Whitehorses B.V. 23

24 The ideal architecture Common user interface Business Processes Web service management en virtualization Functionality (services) Scalable, available and safe platform November 28, Whitehorses B.V. 24

25 Lasagna! Common user interface Business Processes Web service management en virtualization Functionality (services) Scalable, available and safe platform November 28, Whitehorses B.V. 25

26 What is..? a service? A repeatable business task e.g., check customer credit; open new account service orientation? A way of integrating your business as linked services and the outcomes that they bring service oriented architecture (SOA)? An IT architectural style that supports service orientation a composite application? A set of related & integrated services that support a business process built on an SOA November 28, Whitehorses B.V. 26

27 Wikipedia? November 28, Whitehorses B.V. 27

28 SOA industry players IBM WebSphere SAP XI Microsoft BizTalk BEA WebLogic Oracle Fusion Middleware SOA Suite SUN Microsystems - SeeBeyond Cordys and many, many more November 28, Whitehorses B.V. 28

29 SOA Application Development Business analyst: Design the business process Integration specialist: Implement the processes Activity Activity Activity assign invoke receive assign Developer: Build (web) services new services and/or from existing applications DATABASE PACKAGED APPLICATIONS JAVA MAINFRAME November 28, Whitehorses B.V. 29

30 Developing applications in a Service Oriented Architecture (in an Oracle infrastructure) November 28, Whitehorses B.V. 30

31 SOA Lifecycle Develop November 28, Whitehorses B.V. 31

32 Identify or develop services Framework JSR 227 WSIF & JBI In Memory REST JCA COM+ SOAP November 28, Whitehorses B.V. 32

33 SOA Lifecycle Integrate Develop November 28, Whitehorses B.V. 33

34 Enterprise Service Bus What does it do? Virtualize Endpoints: From resources to services Transform: Convert data to target formats Route: Reliably transport and route data over a variety of protocols Expose everything as web services: Adapters to (almost) anything: SAP, Cobol, CICS, HTML, SQL Server, JD Edwards, VT100, etc. Standards-based: XPath, XSLT, SOAP, JMS, JCA, Hot-pluggable: J2EE, JMS, Database, November 28, Whitehorses B.V. 34

35 Virtualize Endpoints Database moves Loan approval process BPM CreateCustomer.wsdl ESB jdbc:oracle:thin: saturn:1521:orcl Host: Port:2320 DB SAP Loan approval process BPM CreateCustomer.wsdl ESB jdbc:oracle:thin: mars :1521:orcl Host: Port:2320 jdbc:oracle:thin: jupiter:1523:audit DB SAP Audit DB Separate functionality from from technical implementation. Change the the implementation without impact impact on on the the business process. Audit DB added November 28, Whitehorses B.V. 35

36 Transform Convert data as it flows through the bus Canonical or point-to-point transformations Standard XSLT for expressing transformations No coding, drag-and-drop graphical mapping tool November 28, Whitehorses B.V. 36

37 Transform: the visual mapping tool Convert data as it flows through the bus Canonical or point-to-point transformations Standard XSLT for expressing transformations No coding, drag-and-drop graphical mapping tool November 28, Whitehorses B.V. 37

38 Route Reliable messaging and guaranteed delivery Content-based: if total_price > 500, route to FedEx Header-based: if message_type = order, route to fulfillment Standard XPath to define routing expressions Graphical expression builder Routing rules can be altered at runtime November 28, Whitehorses B.V. 38

39 Route: expression builder Reliable messaging and guaranteed delivery Content-based: if total_price > 500, route to FedEx Header-based: if message_type = order, route to fulfillment Standard XPath to define routing expressions Graphical expression builder Routing rules can be altered at runtime November 28, Whitehorses B.V. 39

40 Usage Patterns: Simple synchronous request/reply flow Basic RPC mechanism requestor GetCustomer.wsdl November 28, Whitehorses B.V. 40

41 Usage Patterns: non-deterministic synchronous request/reply flow Consumer does not explicitly know the service provider Service provider selection based on message content/header requestor GetCustomer.wsdl November 28, Whitehorses B.V. 41

42 Usage Patterns: simple 1-way 1 asynchronous flow The simplest but also the most typical ESB pattern Fire-and-forget event CreateCustomer.wsdl November 28, Whitehorses B.V. 42

43 Usage Patterns: fan-out 1-way 1 asynchronous flow 1 event triggers multiple parallel operations Outbound operations can be grouped in 1 or more transactions 2 Customer details are logged in the audit database event CreateCustomer.wsdl 2 Customer details are enqueued on JMS to the CRM 1 An event is placed on the bus to notify of a new customer. Payload is customer details. 2 Customer details are enqueued on MQ to the mainframe November 28, Whitehorses B.V. 43

44 Usage Patterns: Response-forwarding Routing based on lookup Asynchronous request/reply 2 Get customer address from database 1 event An event is placed on the bus to indicate an order is ready for shipment. Payload consists of order details and customer ID. ShipOrder.wsdl 3 Combine order details and customer details to prepare shipping November 28, Whitehorses B.V. 44

45 Usage Patterns: Canonical Data Model All messages on the bus are converted to a common data model Reduces the overall number of maps to generate Respective application owners only need to know about 2 data models: their own one + the canonical one. Niet zo CRM Billing Maar zo CRM COMMON DATA MODEL (Customer Object) ERP ERP Shipping Billing Shipping November 28, Whitehorses B.V. 45

46 SOA Lifecycle Integrate Develop Orchestrate November 28, Whitehorses B.V. 46

47 Process Orchestration - BPEL Order Entry Credit Rating United Loan A D A P T E R WSDL A D A P T E R Fulfillment BPEL Star Loan A D A P T E R Service Bus Application Server W S D L November 28, Whitehorses B.V. 47

48 BPEL: Orchestration Standards BPEL: Business Process Execution Language (Wikipedia) Standard XML based markup language for composing a set of discrete services into an end-to-end process flow. 10+ years of R&D from Microsoft and IBM Rich Flow Semantics SalesDB start Duplicate Number! Optimized Bindings (not just Web services) Billing Transformation WS-Security A Process is a Service Router end November 28, Whitehorses B.V. 48

49 Oracle BPEL Process Manager JDeveloper, Eclipse BPEL Designer BPEL Comprehensive and native BPEL implementation Easy-to-use modeling tool BPEL Process Manager Scalable and reliable engine WSDL Binding Web Service Java, JMS File, FTP Built-in Integration Services XQuery XSLT User Tasks JAVA Dehydration Store (Oracle Database) Flexible binding framework Rich management and monitoring Database Apps Core BPEL Engine BPEL Console Support for Oracle AS, JBoss, WebLogic and WebSphere J2EE Application Server (Oracle AS, WebLogic, JBoss, WebSphere) MANAGE Get up and running in less than 15 minutes! Demo and free download November 28, Whitehorses B.V. 49

50 Designing BPEL

51 Running BPEL Visual Monitoring Auditing BPEL Debugging In-flight Instance Administration Performance Tuning Partitioning/Domains November 28, Whitehorses B.V. 51

52 Business Rules Rules enabled applications facts results Rules Engine Rules repository Rule Author Rules customizing application Application run-time logic RuleSession Class Rules SDK Enable Enable business users users to to change the the business process use use a rule rule engine enginein in stead stead of of coding. November 28, Whitehorses B.V. 52

53 SOA Lifecycle Integrate Develop Orchestrate Secure Manage November 28, Whitehorses B.V. 53

54 Services Management Service Auditing SLA Monitoring Security Management Web Services Manager Event Management Policy Management Enterprise Services Bus WSIF In-Memory REST JCA MSFT WSDL November 28, Whitehorses B.V. 54

55 SOA Lifecycle Integrate Develop Orchestrate Secure Analyze Manage Access November 28, Whitehorses B.V. 55

56 Access everything Business Apps Business Events, state transitions Business Process Management Monitoring activities, states RFID and Sensors Active and Passive Location, Temperature, Moisture, Motion, etc. System Management Performance metrics, alerts, logs Messaging Systems JMS, TIBCO, MQSeries Security Authentication, authorization, audit trail Database Streams November 28, Whitehorses B.V. 56

57 Business Activity Monitoring (BAM) Monitor a Single Process Track each process step Identify failures Process Aggregations Averages, KPIs, SLAs Identify bottlenecks Complex Event Processing Correlate independent events Identify threats & opportunities Context Historical performance Rolling average Jan 04 Jan 05 Past 4 Hours November 28, Whitehorses B.V. 57

58 Interface for Business Users Personalized Dashboards Role-based access User defined and built Personalized Alerts User defined alert rules Multi-channel delivery + Embedded Actions One-button response Initiate response workflow November 28, Whitehorses B.V. 58

59 Example: business activity dashboard Runtime Features Real-Time KPI's Thin Browser GUI Role-Based Access Live Display Technology Portal Compatible Embedded Actions November 28, Whitehorses B.V. 59

60 Example: contact center dashboard Runtime Features Real-Time KPI's Thin Browser GUI Role-Based Access Live Display Technology Portal Compatible Embedded Actions November 28, Whitehorses B.V. 60

61 Comprehensive SOA Lifecycle Support Integrate Develop Orchestrate Secure Analyze Manage Access November 28, Whitehorses B.V. 61

62 Oracle SOA Suite components BPA Suite MANAGEMENT Analyst & MONITORING Tools JDeveloper App Dev Framework BAM ROUTING & Business Events ORCHESTRATION Analytics Monitoring BPEL Process Manager Native BPEL EVENTS & CONNECTIVITY Enterprise Service Bus Multi Protocol Human Workflow XSLT Transform BI Business Rules Routing Enterprise Manager GOVERNANCE System Monitoring Web Services Manager Policies Security Adapters B2B SES Registry Apps DB Legacy Partners RFID UDDI Messaging J2EE Application Server Oracle AS, JBoss, WebLogic, WebSphere November 28, Whitehorses B.V. 62

63 What s next November 28, Whitehorses B.V. 63

64 The future? Tomorrow (and today): Create business processes Service enable (custom) applications Build (web) services And further Buy business processes with best-of-breed business services use external (web) services and build what s left November 28, Whitehorses B.V. 64

65 What do I need to know Collect the buzzwords! Business Level Design Business Processes Recognize & design business services Technical Level Web services, WSDL SOAP, UDDI XML, XML Schema, XSLT, etc. BPEL SOA / ESB tools MOM, JMS, JCA, Build services not applications November 28, Whitehorses B.V. 65

66 To finish some remarks All applications that are not SOA are end-of-life Without SOA no IT intensive company will survive October 2007, Chief big Dutch bank November 28, Whitehorses B.V. 66

67 SOA!! November 28, Whitehorses B.V. 67

68 Any Questions? For more information (all in Dutch): Whitehorses: Whitebooks: Job opportunities: Frank Dorst: November 28, Whitehorses B.V. 68