Download - A Flow Based Approach for End to End Mashups
IBM Research
© 2007 IBM Corporation
A Flow-based Approach for End to End Mashups
Rania Khalaf
IBM Research T.J. Watson Research Center
Keynote Presentation. OOPSLA Mashups Workshop 2009
IBM Research
© 2007 IBM Corporation
“Imagine a fearsomely comprehensive disclaimer […]. Now fear, comprehensively” -http://www.cliki.net/cCLan
IBM Research
© 2007 IBM Corporation
In reality, slightly less fearsome..
The information in this deck represents past and ongoing research, often involving products in IBM's portfolio. It does not outline product direction and should not be relied on in making purchasing decisions. It may not be incorporated into any contract.
The research aims to advance the technology in this space and help IBM plan for the future. There is no commitment, promise, or legal obligation to deliver any material, code, or functionality.
The development, release, and timing of any features or functionality described in this talk for our products remains at IBM's sole discretion.
IBM Research
© 2007 IBM Corporation
The work you are about to see
� Starting from a lightweight, REST-friendly flow language, Bite.
– The Bite process model
– Collaborative Flows
� Moving to a hosted BPM as a Service system
– The overall system
– Integarting forms and services
– Extensibility and sharing
� Concluding with an End-to-End Mashup Scenario
– Backing traditional mashups with flow-based service mashups
IBM Research
© 2007 IBM Corporation
� Simplified development
– Quickly and easily create applications combining information from many sources, including Web based services: from UI to data to
lightweight workflows.
– Zero footprint hosted environment
– Simplified discovery and composition
� Simplified deployment, execution, and modification
– Deployed and executed in scalable computing cloud
Characteristics of a Mashup Solution
IBM Research
© 2007 IBM Corporation
Bite:Process Composition for the Web
IBM Research
© 2007 IBM Corporation
Goals and approach
� Expand the reach of flow oriented development
– An attractive high level development model
– Large pool of potential consumers
� Approach: Web centric, lightweight, flexible
– Lightweight model: a minimal set of common process primitives able to support most scenarios
– Lightweight infrastructure: run on the Web platform
– Lightweight lifecycle: zero deployment cost
– Flexible: customizable domain specific capabilities
– Flexible: supporting ad-hoc flows, document centric, human centric, data centric, back-end integration, page flows
� What is the opportunity
– Extend use of workflow as a development model of choice for interactive, Web centric applications
– Appeal to individual domains through extensive customization
– Able to on-ramp to high QoS process engines through automatic model conversion: BPEL, XPDL
IBM Research
© 2007 IBM Corporation
Highlights
� Deep Integration with the Web
– Processes as Active Resources
– Dynamic Data Types
– Extensible Activity Set
� Lightweight Process Model
– Flat Graph Model
– Workflow Scripting:• Use implies definition• Convention over configuration• Reduction of redundancy, indirection, and the need for multiple files (by comparison
with BPEL)
– Flexible configurability:
• Values of variables may be set outside the process itself, similar to Java properties. This allows late binding to service urls, turning paths of the process on/off.
IBM Research
© 2007 IBM Corporation
Lightweight and flexible
� Lightweight model
– Compatible subset of BPEL execution semantics
– Forgiving, script like approach – up and running in seconds
� Lightweight infrastructure:
– Direct deployment to runtime through REST interaction with server
– Runs on web platform: sMash, servlet container
� Flexibility: Extensible activities
– Allow community defined steps with first class XML support within the language
– Defined in Java or Groovy
– Example: <xquery query=“…”/>, <LotusActivity …/>
� Flexibility: Pluggable data model and expression languages
– Data and documents, content-type aware: XML, JSON, mime types
– Pluggable scripting capabilities: Javascript, XPath, Groovy…
– Short and long running flows, persistence provided transparently
IBM Research
© 2007 IBM Corporation
Customization: first class support for Web interactions
� ATOM lifecycle model
– Deployed flow seen as a collection of flow instances
– New flow instances created as initial request is posted to collection
– Flow instances as resources
� First class primitives for REST interaction
– Web client and server capabilities (GET, PUT, POST)
– E-mail, forms
� Support for many flavors of Web applications
– Feed aggregation
– Form based people flows
– Synchronous and asynchronous interactions (HTTP, email)
IBM Research
© 2007 IBM Corporation
Operational semantics
� Data links:
– Carry single data item by value
– Implies control and data dependency
� BPEL like execution semantics
– Graph style
– Dead path elimination and associated restrictions in place
� Control links
– When a dependency is not associated with data passing
– E.g. manager approval requirement
– Data variables
� Data variables
– Can be combined with data flows
<receivePOST name="orderRcv" url=“initiateCase" />
<sendMail name="sendToManager" >(…)
</sendMail>
<receive-replyGET name=“MgrApproval”><control value=“sendToManager/>
</receive-replyGET/>
<sendMail name="sendToSupplier" address="orderRcv.mfrEmail[0]" …><control value="MgrApproval"/><input value="orderRcv"/>
</sendMail>
IBM Research
© 2007 IBM Corporation
Bite: language constructs
Control primitives
Non interactive steps
Utility activities<wait> <empty> <terminate>
Data dependency that serves as a control link as well if the value is an activity
<input>
Control link. <control>
Iteration<while> <foreach>
Call local code<action>
Sending HTTP requests<GET> <PUT>
<POST> <DELETE>
Also *POST. Receiving and replying to messages coming over HTTP. Contain a relative URL attribute used to match an incomingmessage.
<receiveGET>, <replyGET>,
<receiveReplyGET>
NotesInteraction activities
IBM Research
© 2007 IBM Corporation
feed aggregation
Fetch customized
catalog
Customized catalog
and prices
Fetch price and
availability updates
GET FEEDGET FEED
A document pipeline model
IBM Research
© 2007 IBM Corporation
Adding interaction capabilities
IBM Research
© 2007 IBM Corporation
Data flow
Control flow
Plus primitives to encode business logic
IBM Research
© 2007 IBM Corporation
Collaborative Flows
IBM Research
© 2007 IBM Corporation
Scenario: Code Release
� A set of actions needs to be done:
– Clear name with the lawyers
– Clear the IP with the lawyers, depending on
organization.
– Keep a record of approvals (in database).
– Deliver code and associated information to distribution
group
– Notify interested parties of relevant events
IBM Research
© 2007 IBM Corporation
Free-Flowing Actions
� Collaborative effort:
– Different media (phone, e-mail,
presentations, etc)
– Multiple parties
– No fixed sequencing
– Lots of options how things could go
� Examples:
– Clear name/IP with the lawyers, depending on organization
– Deliver code to distribution group
IBM Research
© 2007 IBM Corporation
Examples of Free Flowing actions
Naming clearance
Code delivery
IBM Research
© 2007 IBM Corporation
Coordination is Often Required
� Sequence a set of free-flowing actions:
– Send notification after receiving notice from lawyers.
� Use conditions in sequencing free-flowing actions:
– Only send code after getting a response from the lawyers and ensuring that they approved the release.
� Affect free-flowing actions themselves:
– If the IP clearance is not granted, terminate the naming clearance action.
IBM Research
© 2007 IBM Corporation
Using Bite to Create a Collaborative Service Mashup
IBM Research
© 2007 IBM Corporation
Putting it all together :
A lightweight BPM as a Service system
IBM Research
© 2007 IBM Corporation
BPM as a Service
• Hosted Platform - Nothing to install
• Example Scenarios
• Forms based approval (e.g. vacation request)
• Collaborative web-based ad-hoc workflows
• Main Components
• Flows Editor and Flows Runtime
• Forms Editor and Forms Runtime
3rd Party
REST
Services
Bluehouse
Store & ShareEmail
ActivitiesDatabase
Feeds
Forms
…
Designer
IBM Research
© 2007 IBM Corporation
Available Flow Activities
Store and Share
MQ Action (Get, Post, Delete)
Create Lotus Activity
Create Message Activity Create File Activity
Create Todo Activity
Activity Wait for Completion
Receive Reply
HTTP Action (Get, Post, Put, Delete)
Receive-Reply
HTTP Activities
Connect Disconnect
Update Query
Database Connectivity
Lotus Activities
Input Form
Send Email
Receive Email Reply Email
Collaboration Activities
This is an extensible set.
Can be exteneded by IBM, ISVs or even users
Sametime Chat
IBM Research
© 2007 IBM Corporation
A simple scenario
IBM Research
© 2007 IBM Corporation
Forms and Flows
IBM Research
© 2007 IBM Corporation
End Users Interact with Flow Instance
End UserEnd User
End User
flow Instance
IBM Research
© 2007 IBM Corporation
Collaboration and Sharing:
Focus on Extension Activities
IBM Research
© 2007 IBM Corporation
Collaboration and Sharing around Extension Activities
� Leverage the Bite Language and Runtime:
– REST-based Interaction
– Built-in extensibility requiring minimal artifacts
– Multi-scripting language support for extension activity implementations and expressions
� Developers:
– Create extension activities in their development environment of choice.
– Publish them directly to a catalog, leveraging the SOALive catalog.
– Rate/comment on/leverage other developer’s extensions.
– Update their extensions based on user feedback.
� Designers:
– Use the catalog to find and select extension activities to use in their workflows
– Rate/comment on the extension activities they have used.
IBM Research
© 2007 IBM Corporation
Creating, Sharing, and Using Extension Activities• Hosted Platform - Nothing to install
• Example Scenarios
• Forms based approval (e.g. vacation request)
• Collaborative web-based ad-hoc workflows
• Main Components
• Flows Editor and Flows Runtime
• Forms Editor and Forms Runtime
• Catalog and Respotory of Extension Activities
• Workflow Model and Instance Sharing
Discover and use extension activities
Catalog of Extension Activities
IT Developer
Designer
Development Environment
of choice
IBM Research
© 2007 IBM Corporation
Creating Extension Activities
Catalog of Extension Activities
IT Developer
Script based extension
activities can be input
direcly into the Catalog
(browser UI)
IBM Research
© 2007 IBM Corporation
Creating Extension Activities
Catalog of Extension Activities
Development Environment
of choice
IT Developer
Publish via IDE extension
Publishing an activity includes the implementation artifact + meta-data such as
author, tags, function description.
Create (Java
or script)
Implementation
in IDE
IBM Research
© 2007 IBM Corporation
Developer Community around Extensions
IT Developer
Publish EA1
Search, View, Comment
IT Developer 2
Update and Re-Publish EA1
Add functionality or create/publish new EA
EA
Catalog
Import an EA
IBM Research
© 2007 IBM Corporation
Extension Activities and the Designer
Designer
Search, View, Comment
Select and Use an Extension
IBM Research
© 2007 IBM Corporation
End-to-End Mashups
IBM Research
© 2007 IBM Corporation
A scenario for an end-to-end mashup
� Financial Services Company investigates financial alerts raised due to suspicious activity.
� Once an alert is raised, it must be investigated by searching, visualizing, and discussing information from many data sources.
� The ability to have flexible dashboard to perform the investigation is key.
IBM Research
© 2007 IBM Corporation
Digging deeper
� A user logs into the system and sees company related information and open financial alerts.
– Calendar, News, Charting user performance metrics, Alerts
� A user may select an alert to work on.
� A user may go to the investigation page where he can work on his alerts. The investigation page offers:
– Federated search
– Geospatial information
– Link analysis information
– Wiki for collaborative research
� When ready, the user can submit a report about the alert and assign a resolution.
IBM Research
© 2007 IBM Corporation
IBM Mashup Center
Scenario Architecture
CM DB
Other DBLotus Mashup
(Widgets)
Bite flows in
BPM as a Service system
Infosphere
Mashup Hub
(DB2 to Feeds)
External
Services (Search, etc)
IBM Research
© 2007 IBM Corporation
Conclusion
� Bridging mashups and workflows
� Enabling a flow-based approach to weaving together UI mashups and external services
� A hosted system for creating, running, and collaboratively extending flow-based mashups
� Created by a mashup of IBM teams ☺☺☺☺:
– Developed in internal open source
– Contributors:
• Across IBM: Research, Software Group, Global Business Services
• Across geos: US, Japan, Israel, Canada, and China
IBM Research
© 2007 IBM Corporation
Where can I get more information on …?
� Bite:
– A version is the flow language in IBM Project Zero (WebSphere sMash)
• http://projectzero.org
– ICSOC 2007
– Workshop on XQuery Implementation, Experience and Perspectives (XIME-P 2008) at ACM SIGMOD 2008
� Bite and Collaborative Flows
• IEEE Internet Computing, Special Issue on Services Mashups 2008
� BPM as a service system:
– Devoxx 2008 - presentation by Christina Lau, ‘BPMZero’
� End-to-End Security
– ICSOC 2009
� Extensibility and Sharing
– Workshop on Business Process Management and Social Software, BPM 2009
� Anything else?