SlideShare a Scribd company logo
1 of 47
Using State-Engine as an SCA Spring component in SOA Suite 11g DOAG Konferenz 2010 Guido Schmutz Technology Manager Oracle ACE Director for FMW & SOA  17.11.2010, Nürnberg
SOA Suite 11g Spring Component / Apache Commons SCXML Introduction Guido Schmutz Working for Trivadis for more than 13 years leading and independent IT service company operating in Germany, Austria and Switzerland Oracle ACE Director for Fusion Middleware and SOA Co-Author of different books Consultant, Trainer Software Architect for Java, Oracle, SOA and EDA More than 20 years of software development experience Contact: guido.schmutz@trivadis.com Blog: http://guidoschmutz.wordpress.com/
Trivadisfacts & figures Using State-Engine as an SCA Spring component in SOA Suite 11g 3 ,[object Object]
Financially independent and sustainably profitable
Key figures 2009
Revenue CHF 100 / EUR 66 mio.
Services for more than 650 clients in over 1‘600 projects
Over 160 Service Level Agreements
More than 5'000 training participants
Research and development budget: CHF 5.0 / EUR 3.3 mio.CUSTOMER BUSINESS INTEGRATION SERVICES IT SOLUTIONS, SERVICES, & PRODUCTS Businessdepartments Enterprise Content Management Business Intelligence InfrastructureEngineering ApplicationDevelopment Training Managed Services          Business Integration Services         ITdepartments Integration, Application Performance Management, Security TECHNOLOGIESOracle, Microsoft, IBM, Open Source
Using State-Engine as an SCA Spring component in SOA Suite 11g 4 Whywearespecial Customer-specific  solution competence and vendor independence ,[object Object]
guarantees repeatable quality and a safe executionTechnology competence ,[object Object]
has its own Technology Center and strives for technological excellence Solution and integration expertise ,[object Object]
Combines technological expertise with an understanding of the specific business needs of the clientSupport for the entire IT project lifecycle ,[object Object]
provides the appropriate combination of solutions and services for every „level of maturity“ ,[object Object]
What is a state machine ? A state machine diagram models the behaviour of a single object/system specifies the sequence of events that an object/system goes through during its lifetime in response to events Using State-Engine as an SCA Spring component in SOA Suite 11g
What is State Chart XML (SCXML) ? Generic and environment agnostic markup language for state machine definition W3C Working Draft  (13 May 2010) http://www.w3.org/TR/scxml/ Based on UML 2.0 and Harel State transition tables Features States and transitions Data Model Executable content External communications module History Using State-Engine as an SCA Spring component in SOA Suite 11g
What is Apache Commons SCXML ? http://commons.apache.org/scxml/ Implements State Chart XML (SCXML) The only Java engine which implements SCXML (as far as I know) The "standard actions" defined by the SCXML specification are <var>, <assign>, <log>, <send>, <cancel>, <if>, <elseif>, <else>.  Using State-Engine as an SCA Spring component in SOA Suite 11g
Result Not successfull ! Issues with the classloader when trying to initiate the Commons SCXML (ClassNotFoundException)! I‘m talking to the Oracle Development to see how to solve that! Using State-Engine as an SCA Spring component in SOA Suite 11g
Summary There can be issues with the classloader Make sure that you test what you want to integrate right upfront So this is it !??? Of course not, just changed my agenda slightly and I will present some interesting use cases with the Spring Component in SOA Suite 11g Using State-Engine as an SCA Spring component in SOA Suite 11g Lessons learnt: Do not create sexy and fancy abstracts just to get accepted to a conference ;-) Or make sure before that it‘s somehow achievable....
Agenda Data are always part of the game. Spring Component of SOA Suite 11g Introduction Hello World “Advanced” Use Cases State Machine and Apache Commons SCXML What are State Machines What is Apache Commons SCXML Using State-Engine as an SCA Spring component in SOA Suite 11g
SOA Suite 11gR1 PS2 Architecture BPMN 2.0,  BPEL Shared BPMN Model Web based customization BPA Rich End User Interaction Business View  MS Office  Workspace Process Portal (WC spaces) Process Composer BPM Studio (with Business and IT views) Human Workflow (+AMX, AG, Orgn) Business Rules Mediator BPMN BPEL Spring B2B Unified Runtime Process Analytics Policy Manager Common JCA-based connectivity infrastructure BAM Optimized binding Oracle Service Bus Proc Cubes EM console +BPMN Screens Repository 12							Oracle Restricted and Confidential
The Spring component „Officially“ introduced with SOA Suite 11g PS2 Allows to publish Java Interfaces implemented by Spring beans as a service that can be used inside a composite application By that part of the logic required in a SOA composite can be implemented in Java and used like any other service component a Spring Ban can be reused within the composite and even outside the composite either as an EJB or as a Web Service Additionally the Java beans in the Spring Context component can call services exposed by other Service components and Adapter bindings Java bean can retrieve records from a database table using the DB adapter Using State-Engine as an SCA Spring component in SOA Suite 11g
Agenda Data are always part of the game. Spring Component of SOA Suite 11g Introduction Hello World “Advanced” Use Cases State Machine and Apache Commons SCXML What are State Machines What is Apache Commons SCXML Using State-Engine as an SCA Spring component in SOA Suite 11g
The HelloWorldImpl POJO used inside a Spring component Hello World – Step 1 Using State-Engine as an SCA Spring component in SOA Suite 11g Lessons learnt: Make sure to compile classes before wiring!
Hello World – Step 2 Add the GreetingProvider strategy interface to provide an extended greeting message Using State-Engine as an SCA Spring component in SOA Suite 11g
Hello World – Step 3 Implement the GreetingProvider as a separate Spring component and wire it to the HelloWorld component Same type
Hello World – Step 4 Implement the GreetingProvider as a Mediator component and wire it to the HelloWorld component Lessons learnt: if you delete a wire, the <sca:reference> element is also removed
<sca:service> Element Declares a Spring bean that SCA exposes as a service Takes the following attributes Name the name of the service (required) Type The fully qualified Java type of the Java class to be exposed as an SCA service (required) Target The bean to be exposed as a service (required)	 Using State-Engine as an SCA Spring component in SOA Suite 11g
<sca:reference> Element Declares a Spring bean representing an SCA service external to the Spring application context Takes the follwing attributes Name The name of the reference (required) Type The fully-qualified Java type of the interface or class representing the remote service (required) Default The target bean for the reference if none is specified (optional) Using State-Engine as an SCA Spring component in SOA Suite 11g
Different granularities of componentization Single SCA-level component / one spring bean Single SCA-level component /multiple spring beans Multiple SCA-level Spring components SCA Spring Component and Meditor component Using State-Engine as an SCA Spring component in SOA Suite 11g
Callback the concept of callbacks does not exist in the spring framework  For Oracle SOA Suite a callback is specified as a 2nd port type for interface.wsdl or a 2nd Java name for interface.java The spring metadata has only sca:services and sca:references and no way to specify a callback To design a callback with spring, you must provide sca:services and sca:references with a specific name create a sca:service and sca:reference using naming conventions of someService and someServiceCallback Oracle SOA Suite recognizes this convention and creates a callback Using State-Engine as an SCA Spring component in SOA Suite 11g
Agenda Data are always part of the game. Spring Component of SOA Suite 11g Introduction Hello World “Advanced” Use Cases State Machine and Apache Commons SCXML What are State Machines What is Apache Commons SCXML Using State-Engine as an SCA Spring component in SOA Suite 11g
Use Case 1: Accessing the Spring Context Use Case: Want to access/lookup another bean from the spring context Idea: Implement the Lifecycle Interface Using State-Engine as an SCA Spring component in SOA Suite 11g Lessons learnt: Only a BeanFactory and not an ApplicationContext is created!
Use Case 2: Groovy Script Use Case: Want to use the Spring Dynamic Language Support to execute a Groovy Script Idea: use the <lang:groovy> tag and reference the script and put the external libraries in SCA-INF/lib of the SOA project  Using State-Engine as an SCA Spring component in SOA Suite 11g Lessons learnt: Classloader is not my friend!
Use Case 3: Executing Task asynchronously Use Case: Want to execute a possible long running Java method asynchronously Idea: use the Spring TaskExecutor abstraction Using State-Engine as an SCA Spring component in SOA Suite 11g
Use Case 4: Schedule a Job Use Case: Want to Schedule a job/task/service to run repeatedly Idea: use a Timer to schedule the call of a „service references“  Using State-Engine as an SCA Spring component in SOA Suite 11g Lessons learnt: „free-floating“ Spring bean (timerFactory) is not initialized! need to be referenced from a bean which is externalized as a service!
Use Case 5: Schedule Job torun delayed Use Case: Want to schedule a method/service to run delayed Idea: use a Timer and schedule the call of a „service references“ through a service call  Using State-Engine as an SCA Spring component in SOA Suite 11g
Use Case 6: Caching Use Case: Want to cache some information and access it in a next request Idea: use a Map and store the information in there  Could be further extended by using Oracle Coherence to get access to the Grid ! Using State-Engine as an SCA Spring component in SOA Suite 11g
Use Case 7: JMX managed beans Use Case: Want to change the properties of a Spring bean at runtime Idea: use the Spring JMX abstraction to externalize a Spring bean as an MBean Using State-Engine as an SCA Spring component in SOA Suite 11g Lessons learnt: Only a BeanFactory and not an ApplicationContext is created!
Summary Spring Component is a very nice and long awaited feature! Uses cases for it are endless….. Just presented some use cases to whet your appetite!  Only use the Spring Component if there is no out-of-the-box feature offered by SOA Suite itself Make sure that your external library works before you invest too much time! Actual books where you’llfind more informationabout SOA Suite: Using State-Engine as an SCA Spring component in SOA Suite 11g
Agenda Data are always part of the game. Spring Component of SOA Suite 11g Introduction Hello World “Advanced” Use Cases State Machine and Apache Commons SCXML What is a State Machine What is Apache Commons SCXML Using State-Engine as an SCA Spring component in SOA Suite 11g
Indroduction A state describes the condition of an object at a given point in its lifetime "A state is a condition or situation during the life of an object during which it satisfies some condition, performs some activity, or waits for some event" [Booch et al. (1999) UML Language User Guide, p291] A state diagram describes all possible states of an object & the paths to get from one state to another when an external event is received Using State-Engine as an SCA Spring component in SOA Suite 11g
What is a state machine ? A state machine diagram models the behaviour of a single object/system specifies the sequence of events that an object/system goes through during its lifetime in response to events Using State-Engine as an SCA Spring component in SOA Suite 11g
Building Blocks Start and End States State Actions Transitions Self Transitions Using State-Engine as an SCA Spring component in SOA Suite 11g
Building Blocks Compound States History State Using State-Engine as an SCA Spring component in SOA Suite 11g
Building Blocks Concurrent Blocks Using State-Engine as an SCA Spring component in SOA Suite 11g

More Related Content

What's hot

Spring Framework
Spring FrameworkSpring Framework
Spring Frameworknomykk
 
NLOUG 2017- Oracle WebCenter Portal 12c Performance
NLOUG 2017- Oracle WebCenter Portal 12c PerformanceNLOUG 2017- Oracle WebCenter Portal 12c Performance
NLOUG 2017- Oracle WebCenter Portal 12c PerformanceDaniel Merchán García
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010arif44
 
Introduction to Ibatis by Rohit
Introduction to Ibatis by RohitIntroduction to Ibatis by Rohit
Introduction to Ibatis by RohitRohit Prabhakar
 
Understanding router state in angular 7 passing data through angular router s...
Understanding router state in angular 7 passing data through angular router s...Understanding router state in angular 7 passing data through angular router s...
Understanding router state in angular 7 passing data through angular router s...Katy Slemon
 
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJava EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJosh Juneau
 
Modularity of the Java Platform (OSGi, Jigsaw and Penrose)
Modularity of the Java Platform (OSGi, Jigsaw and Penrose)Modularity of the Java Platform (OSGi, Jigsaw and Penrose)
Modularity of the Java Platform (OSGi, Jigsaw and Penrose)Martin Toshev
 
Apex basics-for Beginners
Apex basics-for BeginnersApex basics-for Beginners
Apex basics-for Beginnershrakhra
 

What's hot (20)

Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
NLOUG 2017- Oracle WebCenter Portal 12c Performance
NLOUG 2017- Oracle WebCenter Portal 12c PerformanceNLOUG 2017- Oracle WebCenter Portal 12c Performance
NLOUG 2017- Oracle WebCenter Portal 12c Performance
 
MidSem
MidSemMidSem
MidSem
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010
 
Introduction to Ibatis by Rohit
Introduction to Ibatis by RohitIntroduction to Ibatis by Rohit
Introduction to Ibatis by Rohit
 
NLOUG 2018 - Future of JSF and ADF
NLOUG 2018 - Future of JSF and ADFNLOUG 2018 - Future of JSF and ADF
NLOUG 2018 - Future of JSF and ADF
 
Understanding router state in angular 7 passing data through angular router s...
Understanding router state in angular 7 passing data through angular router s...Understanding router state in angular 7 passing data through angular router s...
Understanding router state in angular 7 passing data through angular router s...
 
Abap proxies
Abap proxiesAbap proxies
Abap proxies
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Java 9 Features
Java 9 FeaturesJava 9 Features
Java 9 Features
 
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJava EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVC
 
Servlet programming
Servlet programmingServlet programming
Servlet programming
 
Angular 2.0
Angular  2.0Angular  2.0
Angular 2.0
 
Amis conference soa deployment. the dirty tricks using bamboo, nexus and xl ...
Amis conference soa deployment. the dirty tricks using  bamboo, nexus and xl ...Amis conference soa deployment. the dirty tricks using  bamboo, nexus and xl ...
Amis conference soa deployment. the dirty tricks using bamboo, nexus and xl ...
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Abap proxy
Abap proxyAbap proxy
Abap proxy
 
8i r3 nfs
8i r3 nfs8i r3 nfs
8i r3 nfs
 
Modularity of the Java Platform (OSGi, Jigsaw and Penrose)
Modularity of the Java Platform (OSGi, Jigsaw and Penrose)Modularity of the Java Platform (OSGi, Jigsaw and Penrose)
Modularity of the Java Platform (OSGi, Jigsaw and Penrose)
 
Apex basics-for Beginners
Apex basics-for BeginnersApex basics-for Beginners
Apex basics-for Beginners
 
JavaFX Enterprise
JavaFX EnterpriseJavaFX Enterprise
JavaFX Enterprise
 

Similar to Using state-engine-as-sca-component-final

## Introducing a reactive Scala-Akka based system in a Java centric company
## Introducing a reactive Scala-Akka based system in a Java centric company## Introducing a reactive Scala-Akka based system in a Java centric company
## Introducing a reactive Scala-Akka based system in a Java centric companyMilan Aleksić
 
Building apps with tuscany
Building apps with tuscanyBuilding apps with tuscany
Building apps with tuscanyLuciano Resende
 
ApacheCon NA 2010 - Building Apps with Apache Tuscany
ApacheCon NA 2010 - Building Apps with Apache TuscanyApacheCon NA 2010 - Building Apps with Apache Tuscany
ApacheCon NA 2010 - Building Apps with Apache TuscanyJean-Sebastien Delfino
 
Salesforce Lightning Web Components Overview
Salesforce Lightning Web Components OverviewSalesforce Lightning Web Components Overview
Salesforce Lightning Web Components OverviewNagarjuna Kaipu
 
The Web on OSGi: Here's How
The Web on OSGi: Here's HowThe Web on OSGi: Here's How
The Web on OSGi: Here's Howmrdon
 
Moduarlity patterns with OSGi
Moduarlity patterns with OSGiModuarlity patterns with OSGi
Moduarlity patterns with OSGiPaul Bakker
 
FraSCAti Adaptive and Reflective Middleware of Middleware
FraSCAti Adaptive and Reflective Middleware of MiddlewareFraSCAti Adaptive and Reflective Middleware of Middleware
FraSCAti Adaptive and Reflective Middleware of Middlewarephilippe_merle
 
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache TuscanyApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache TuscanyJean-Sebastien Delfino
 
Dataflow vs spark streaming
Dataflow vs spark streamingDataflow vs spark streaming
Dataflow vs spark streamingVenkatesh Iyer
 
Lightning web components
Lightning web components Lightning web components
Lightning web components Cloud Analogy
 
Introducing SOA and Oracle SOA Suite 11g for Database Professionals
Introducing SOA and Oracle SOA Suite 11g for Database ProfessionalsIntroducing SOA and Oracle SOA Suite 11g for Database Professionals
Introducing SOA and Oracle SOA Suite 11g for Database ProfessionalsLucas Jellema
 
Report From Oracle Open World 2008 AMIS 2 October2008
Report From Oracle Open World 2008 AMIS 2 October2008Report From Oracle Open World 2008 AMIS 2 October2008
Report From Oracle Open World 2008 AMIS 2 October2008Lucas Jellema
 
Primavera integration possibilities Technical overview - Oracle Primavera Col...
Primavera integration possibilities Technical overview - Oracle Primavera Col...Primavera integration possibilities Technical overview - Oracle Primavera Col...
Primavera integration possibilities Technical overview - Oracle Primavera Col...p6academy
 
Declaring Server App Components in Pure Java
Declaring Server App Components in Pure JavaDeclaring Server App Components in Pure Java
Declaring Server App Components in Pure JavaAtlassian
 
Apache Shindig, from Server Side Portlets to Open Social Gadgets
Apache Shindig, from Server Side Portlets to Open Social GadgetsApache Shindig, from Server Side Portlets to Open Social Gadgets
Apache Shindig, from Server Side Portlets to Open Social GadgetsTyrell Perera
 
What's New for Presentation in Visual Studio 2008 SP1
What's New for Presentation in Visual Studio 2008 SP1What's New for Presentation in Visual Studio 2008 SP1
What's New for Presentation in Visual Studio 2008 SP1ukdpe
 
St Hilaire Ajax Start Odtug Nov 2009
St Hilaire   Ajax Start Odtug Nov 2009St Hilaire   Ajax Start Odtug Nov 2009
St Hilaire Ajax Start Odtug Nov 2009ruiruitang
 
Soa admin training
Soa admin trainingSoa admin training
Soa admin trainingAnil Ncodeit
 
Soa admin training
Soa admin trainingSoa admin training
Soa admin trainingAnil Ncodeit
 
Soa admin training
Soa admin trainingSoa admin training
Soa admin trainingAnil Ncodeit
 

Similar to Using state-engine-as-sca-component-final (20)

## Introducing a reactive Scala-Akka based system in a Java centric company
## Introducing a reactive Scala-Akka based system in a Java centric company## Introducing a reactive Scala-Akka based system in a Java centric company
## Introducing a reactive Scala-Akka based system in a Java centric company
 
Building apps with tuscany
Building apps with tuscanyBuilding apps with tuscany
Building apps with tuscany
 
ApacheCon NA 2010 - Building Apps with Apache Tuscany
ApacheCon NA 2010 - Building Apps with Apache TuscanyApacheCon NA 2010 - Building Apps with Apache Tuscany
ApacheCon NA 2010 - Building Apps with Apache Tuscany
 
Salesforce Lightning Web Components Overview
Salesforce Lightning Web Components OverviewSalesforce Lightning Web Components Overview
Salesforce Lightning Web Components Overview
 
The Web on OSGi: Here's How
The Web on OSGi: Here's HowThe Web on OSGi: Here's How
The Web on OSGi: Here's How
 
Moduarlity patterns with OSGi
Moduarlity patterns with OSGiModuarlity patterns with OSGi
Moduarlity patterns with OSGi
 
FraSCAti Adaptive and Reflective Middleware of Middleware
FraSCAti Adaptive and Reflective Middleware of MiddlewareFraSCAti Adaptive and Reflective Middleware of Middleware
FraSCAti Adaptive and Reflective Middleware of Middleware
 
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache TuscanyApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
ApacheCon NA 2010 - Developing Composite Apps for the Cloud with Apache Tuscany
 
Dataflow vs spark streaming
Dataflow vs spark streamingDataflow vs spark streaming
Dataflow vs spark streaming
 
Lightning web components
Lightning web components Lightning web components
Lightning web components
 
Introducing SOA and Oracle SOA Suite 11g for Database Professionals
Introducing SOA and Oracle SOA Suite 11g for Database ProfessionalsIntroducing SOA and Oracle SOA Suite 11g for Database Professionals
Introducing SOA and Oracle SOA Suite 11g for Database Professionals
 
Report From Oracle Open World 2008 AMIS 2 October2008
Report From Oracle Open World 2008 AMIS 2 October2008Report From Oracle Open World 2008 AMIS 2 October2008
Report From Oracle Open World 2008 AMIS 2 October2008
 
Primavera integration possibilities Technical overview - Oracle Primavera Col...
Primavera integration possibilities Technical overview - Oracle Primavera Col...Primavera integration possibilities Technical overview - Oracle Primavera Col...
Primavera integration possibilities Technical overview - Oracle Primavera Col...
 
Declaring Server App Components in Pure Java
Declaring Server App Components in Pure JavaDeclaring Server App Components in Pure Java
Declaring Server App Components in Pure Java
 
Apache Shindig, from Server Side Portlets to Open Social Gadgets
Apache Shindig, from Server Side Portlets to Open Social GadgetsApache Shindig, from Server Side Portlets to Open Social Gadgets
Apache Shindig, from Server Side Portlets to Open Social Gadgets
 
What's New for Presentation in Visual Studio 2008 SP1
What's New for Presentation in Visual Studio 2008 SP1What's New for Presentation in Visual Studio 2008 SP1
What's New for Presentation in Visual Studio 2008 SP1
 
St Hilaire Ajax Start Odtug Nov 2009
St Hilaire   Ajax Start Odtug Nov 2009St Hilaire   Ajax Start Odtug Nov 2009
St Hilaire Ajax Start Odtug Nov 2009
 
Soa admin training
Soa admin trainingSoa admin training
Soa admin training
 
Soa admin training
Soa admin trainingSoa admin training
Soa admin training
 
Soa admin training
Soa admin trainingSoa admin training
Soa admin training
 

More from Guido Schmutz

30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as CodeGuido Schmutz
 
Event Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data ArchitectureEvent Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data ArchitectureGuido Schmutz
 
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-FormatsBig Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-FormatsGuido Schmutz
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!Guido Schmutz
 
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Guido Schmutz
 
Event Hub (i.e. Kafka) in Modern Data Architecture
Event Hub (i.e. Kafka) in Modern Data ArchitectureEvent Hub (i.e. Kafka) in Modern Data Architecture
Event Hub (i.e. Kafka) in Modern Data ArchitectureGuido Schmutz
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaGuido Schmutz
 
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) ArchitectureEvent Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) ArchitectureGuido Schmutz
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaGuido Schmutz
 
Location Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache KafkaLocation Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache KafkaGuido Schmutz
 
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache KafkaSolutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache KafkaGuido Schmutz
 
What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?Guido Schmutz
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaGuido Schmutz
 
Location Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using KafkaLocation Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using KafkaGuido Schmutz
 
Streaming Visualisation
Streaming VisualisationStreaming Visualisation
Streaming VisualisationGuido Schmutz
 
Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?Guido Schmutz
 
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaSolutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaGuido Schmutz
 
Fundamentals Big Data and AI Architecture
Fundamentals Big Data and AI ArchitectureFundamentals Big Data and AI Architecture
Fundamentals Big Data and AI ArchitectureGuido Schmutz
 
Location Analytics - Real-Time Geofencing using Kafka
Location Analytics - Real-Time Geofencing using Kafka Location Analytics - Real-Time Geofencing using Kafka
Location Analytics - Real-Time Geofencing using Kafka Guido Schmutz
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming VisualizationGuido Schmutz
 

More from Guido Schmutz (20)

30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code
 
Event Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data ArchitectureEvent Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data Architecture
 
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-FormatsBig Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!
 
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?
 
Event Hub (i.e. Kafka) in Modern Data Architecture
Event Hub (i.e. Kafka) in Modern Data ArchitectureEvent Hub (i.e. Kafka) in Modern Data Architecture
Event Hub (i.e. Kafka) in Modern Data Architecture
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
 
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) ArchitectureEvent Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
 
Location Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache KafkaLocation Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache Kafka
 
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache KafkaSolutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
 
What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
 
Location Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using KafkaLocation Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using Kafka
 
Streaming Visualisation
Streaming VisualisationStreaming Visualisation
Streaming Visualisation
 
Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?
 
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaSolutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
 
Fundamentals Big Data and AI Architecture
Fundamentals Big Data and AI ArchitectureFundamentals Big Data and AI Architecture
Fundamentals Big Data and AI Architecture
 
Location Analytics - Real-Time Geofencing using Kafka
Location Analytics - Real-Time Geofencing using Kafka Location Analytics - Real-Time Geofencing using Kafka
Location Analytics - Real-Time Geofencing using Kafka
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
 

Recently uploaded

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Recently uploaded (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

Using state-engine-as-sca-component-final

  • 1. Using State-Engine as an SCA Spring component in SOA Suite 11g DOAG Konferenz 2010 Guido Schmutz Technology Manager Oracle ACE Director for FMW & SOA 17.11.2010, Nürnberg
  • 2. SOA Suite 11g Spring Component / Apache Commons SCXML Introduction Guido Schmutz Working for Trivadis for more than 13 years leading and independent IT service company operating in Germany, Austria and Switzerland Oracle ACE Director for Fusion Middleware and SOA Co-Author of different books Consultant, Trainer Software Architect for Java, Oracle, SOA and EDA More than 20 years of software development experience Contact: guido.schmutz@trivadis.com Blog: http://guidoschmutz.wordpress.com/
  • 3.
  • 4. Financially independent and sustainably profitable
  • 6. Revenue CHF 100 / EUR 66 mio.
  • 7. Services for more than 650 clients in over 1‘600 projects
  • 8. Over 160 Service Level Agreements
  • 9. More than 5'000 training participants
  • 10. Research and development budget: CHF 5.0 / EUR 3.3 mio.CUSTOMER BUSINESS INTEGRATION SERVICES IT SOLUTIONS, SERVICES, & PRODUCTS Businessdepartments Enterprise Content Management Business Intelligence InfrastructureEngineering ApplicationDevelopment Training Managed Services Business Integration Services ITdepartments Integration, Application Performance Management, Security TECHNOLOGIESOracle, Microsoft, IBM, Open Source
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16. What is a state machine ? A state machine diagram models the behaviour of a single object/system specifies the sequence of events that an object/system goes through during its lifetime in response to events Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 17. What is State Chart XML (SCXML) ? Generic and environment agnostic markup language for state machine definition W3C Working Draft (13 May 2010) http://www.w3.org/TR/scxml/ Based on UML 2.0 and Harel State transition tables Features States and transitions Data Model Executable content External communications module History Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 18. What is Apache Commons SCXML ? http://commons.apache.org/scxml/ Implements State Chart XML (SCXML) The only Java engine which implements SCXML (as far as I know) The "standard actions" defined by the SCXML specification are <var>, <assign>, <log>, <send>, <cancel>, <if>, <elseif>, <else>. Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 19. Result Not successfull ! Issues with the classloader when trying to initiate the Commons SCXML (ClassNotFoundException)! I‘m talking to the Oracle Development to see how to solve that! Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 20. Summary There can be issues with the classloader Make sure that you test what you want to integrate right upfront So this is it !??? Of course not, just changed my agenda slightly and I will present some interesting use cases with the Spring Component in SOA Suite 11g Using State-Engine as an SCA Spring component in SOA Suite 11g Lessons learnt: Do not create sexy and fancy abstracts just to get accepted to a conference ;-) Or make sure before that it‘s somehow achievable....
  • 21. Agenda Data are always part of the game. Spring Component of SOA Suite 11g Introduction Hello World “Advanced” Use Cases State Machine and Apache Commons SCXML What are State Machines What is Apache Commons SCXML Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 22. SOA Suite 11gR1 PS2 Architecture BPMN 2.0, BPEL Shared BPMN Model Web based customization BPA Rich End User Interaction Business View MS Office Workspace Process Portal (WC spaces) Process Composer BPM Studio (with Business and IT views) Human Workflow (+AMX, AG, Orgn) Business Rules Mediator BPMN BPEL Spring B2B Unified Runtime Process Analytics Policy Manager Common JCA-based connectivity infrastructure BAM Optimized binding Oracle Service Bus Proc Cubes EM console +BPMN Screens Repository 12 Oracle Restricted and Confidential
  • 23. The Spring component „Officially“ introduced with SOA Suite 11g PS2 Allows to publish Java Interfaces implemented by Spring beans as a service that can be used inside a composite application By that part of the logic required in a SOA composite can be implemented in Java and used like any other service component a Spring Ban can be reused within the composite and even outside the composite either as an EJB or as a Web Service Additionally the Java beans in the Spring Context component can call services exposed by other Service components and Adapter bindings Java bean can retrieve records from a database table using the DB adapter Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 24. Agenda Data are always part of the game. Spring Component of SOA Suite 11g Introduction Hello World “Advanced” Use Cases State Machine and Apache Commons SCXML What are State Machines What is Apache Commons SCXML Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 25. The HelloWorldImpl POJO used inside a Spring component Hello World – Step 1 Using State-Engine as an SCA Spring component in SOA Suite 11g Lessons learnt: Make sure to compile classes before wiring!
  • 26. Hello World – Step 2 Add the GreetingProvider strategy interface to provide an extended greeting message Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 27. Hello World – Step 3 Implement the GreetingProvider as a separate Spring component and wire it to the HelloWorld component Same type
  • 28. Hello World – Step 4 Implement the GreetingProvider as a Mediator component and wire it to the HelloWorld component Lessons learnt: if you delete a wire, the <sca:reference> element is also removed
  • 29. <sca:service> Element Declares a Spring bean that SCA exposes as a service Takes the following attributes Name the name of the service (required) Type The fully qualified Java type of the Java class to be exposed as an SCA service (required) Target The bean to be exposed as a service (required) Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 30. <sca:reference> Element Declares a Spring bean representing an SCA service external to the Spring application context Takes the follwing attributes Name The name of the reference (required) Type The fully-qualified Java type of the interface or class representing the remote service (required) Default The target bean for the reference if none is specified (optional) Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 31. Different granularities of componentization Single SCA-level component / one spring bean Single SCA-level component /multiple spring beans Multiple SCA-level Spring components SCA Spring Component and Meditor component Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 32. Callback the concept of callbacks does not exist in the spring framework For Oracle SOA Suite a callback is specified as a 2nd port type for interface.wsdl or a 2nd Java name for interface.java The spring metadata has only sca:services and sca:references and no way to specify a callback To design a callback with spring, you must provide sca:services and sca:references with a specific name create a sca:service and sca:reference using naming conventions of someService and someServiceCallback Oracle SOA Suite recognizes this convention and creates a callback Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 33. Agenda Data are always part of the game. Spring Component of SOA Suite 11g Introduction Hello World “Advanced” Use Cases State Machine and Apache Commons SCXML What are State Machines What is Apache Commons SCXML Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 34. Use Case 1: Accessing the Spring Context Use Case: Want to access/lookup another bean from the spring context Idea: Implement the Lifecycle Interface Using State-Engine as an SCA Spring component in SOA Suite 11g Lessons learnt: Only a BeanFactory and not an ApplicationContext is created!
  • 35. Use Case 2: Groovy Script Use Case: Want to use the Spring Dynamic Language Support to execute a Groovy Script Idea: use the <lang:groovy> tag and reference the script and put the external libraries in SCA-INF/lib of the SOA project Using State-Engine as an SCA Spring component in SOA Suite 11g Lessons learnt: Classloader is not my friend!
  • 36. Use Case 3: Executing Task asynchronously Use Case: Want to execute a possible long running Java method asynchronously Idea: use the Spring TaskExecutor abstraction Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 37. Use Case 4: Schedule a Job Use Case: Want to Schedule a job/task/service to run repeatedly Idea: use a Timer to schedule the call of a „service references“ Using State-Engine as an SCA Spring component in SOA Suite 11g Lessons learnt: „free-floating“ Spring bean (timerFactory) is not initialized! need to be referenced from a bean which is externalized as a service!
  • 38. Use Case 5: Schedule Job torun delayed Use Case: Want to schedule a method/service to run delayed Idea: use a Timer and schedule the call of a „service references“ through a service call Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 39. Use Case 6: Caching Use Case: Want to cache some information and access it in a next request Idea: use a Map and store the information in there Could be further extended by using Oracle Coherence to get access to the Grid ! Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 40. Use Case 7: JMX managed beans Use Case: Want to change the properties of a Spring bean at runtime Idea: use the Spring JMX abstraction to externalize a Spring bean as an MBean Using State-Engine as an SCA Spring component in SOA Suite 11g Lessons learnt: Only a BeanFactory and not an ApplicationContext is created!
  • 41. Summary Spring Component is a very nice and long awaited feature! Uses cases for it are endless….. Just presented some use cases to whet your appetite! Only use the Spring Component if there is no out-of-the-box feature offered by SOA Suite itself Make sure that your external library works before you invest too much time! Actual books where you’llfind more informationabout SOA Suite: Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 42. Agenda Data are always part of the game. Spring Component of SOA Suite 11g Introduction Hello World “Advanced” Use Cases State Machine and Apache Commons SCXML What is a State Machine What is Apache Commons SCXML Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 43. Indroduction A state describes the condition of an object at a given point in its lifetime "A state is a condition or situation during the life of an object during which it satisfies some condition, performs some activity, or waits for some event" [Booch et al. (1999) UML Language User Guide, p291] A state diagram describes all possible states of an object & the paths to get from one state to another when an external event is received Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 44. What is a state machine ? A state machine diagram models the behaviour of a single object/system specifies the sequence of events that an object/system goes through during its lifetime in response to events Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 45. Building Blocks Start and End States State Actions Transitions Self Transitions Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 46. Building Blocks Compound States History State Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 47. Building Blocks Concurrent Blocks Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 48. Agenda Data are always part of the game. Spring Component of SOA Suite 11g Introduction Hello World “Advanced” Use Cases State Machine and Apache Commons SCXML What is a State Machine What is Apache Commons SCXML Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 49. What is State Chart XML (SCXML) Generic and environment agnostic markup language for state machine definition W3C Working Draft (13 May 2010) http://www.w3.org/TR/scxml/ Based on UML 2.0 and Harel State transition tables Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 50. SCXML features States and transitions Composite, Orthogonal and Final Events, guards and targets Data Model Pluggable data representation and expression language Executable content On entry, exit or transition Extensible External communications module Send, cancel Invoke, Finalize History Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 51. Apache Commons SCXML http://commons.apache.org/scxml/ Implements State Chart XML (SCXML) The only Java engine which implements SCXML (as far as I know) The "standard actions" defined by the SCXML specification are <var>, <assign>, <log>, <send>, <cancel>, <if>, <elseif>, <else>. Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 52. State Actions Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 53. Transitions (simple, condition, self) Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 54. Parallel States Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 55. Timeout with Custom Action SCXML can be extended with custom action Used for timeout transitions Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 56. Send action <send> can used to send events and data to external systems, including external SCXML Interpreters, or to raise events in the current SCXML session Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 57. Using SCXML in a SOA Implemented a Spring Wrapper around Commons SCXML Exposed a Web Service interface through Spring-WS Created Publisher compontents to publish/signal events via Event Delivery Network (EDN) or Web Services Using State-Engine as an SCA Spring component in SOA Suite 11g
  • 58. Thank you! ODTUG 2010 Guido Schmutz,Technology Manager / Partner Trivadis AG 29.6.2010, Washington

Editor's Notes

  1. Hier könnte eine Kopfzeile stehen 24.09.10 Hier könnte eine Fusszeile stehen Ihr müsst nicht alle Punkt aufzählen. Vielleicht der Hinweis, CH-Unternehmen mit 13 Standorten in D-A-CH, Anzahl Mitarbeiter und das wir finanziell unabhängig sind.