Damia: Data Mashups for Intranet Applications Speaker:房欣漢 SIGMOD’08, June 9–12, 2008,

advertisement
Damia: Data Mashups for
Intranet Applications
SIGMOD’08, June 9–12, 2008,
Vancouver, BC, Canada.
Speaker:房欣漢
1
Abstract
 This paper describes the key features
and design of Damia's data integration
engine, which has been packaged with
Mashup Hub, an enterprise feed server
currently available for download on IBM
alphaWorks.
2
Introduction
 The Damia data mashup platform
(1)enables secure access to data from a
variety of desktop, departmental, and web
sources both inside and outside the
corporate firewall
(2)provides the capability to filter,
standardize, join, aggregate, and
otherwise augment the structured and
unstructured data retrieved from those
sources
3
Introduction(cont.)
(3)allows for the delivery of the
transformed data to AJAX, or other types
of web applications on demand
(4)exposes these capabilities via
lightweight programmatic and
administrative APIs that allows users with
minimal programming expertise to
complete integration tasks.
4
DAMIA FEED SERVER
 In addition to the
Damia integration
engine, the server is
further comprised of
a directory services
component, a storage
services component,
and a rich client
browser interface.
5
DAMIA FEED SERVERIntegration Engine
 A flow is presented to the
integration engine in the form of
an XML document that depicts its
flow representation in a serialized
format.
 The flow is compiled into a set of
lower level primitives that can be
executed.
 A given feed manipulation
operator might compile into
number of lower level primitives.
 A compiled data mashup has an
associated URL; hence, the result
of the data mashup can be
retrieved via a simple REST call.
6
DAMIA FEED SERVERDirectory Services
 The directory services
component provides
capabilities to search, tag,
rate, execute, and
otherwise manage these
information assets.
 The directory services
component uses the
storage services
component to store
assets and metadata.
7
DAMIA FEED SERVERStorage Services
 The storage services
component handles
the storage and
retrieval of data and
metadata needed by
other Damia
components.
8
DAMIA FEED SERVERClient Interface
 Situational applications are typically
created by departmental users with little
programming knowledge; consequently
providing an intuitive interface where data
mashups can be composed visually was a
critical design point for Damia.
9
DAMIA FEED SERVERClient Interface(cont.)
 Toward this goal, we
developed a browserbased user interface
that provides facilities
for composing, editing,
and debugging data
mashups graphically.
10
DAMIA INTEGRATION ENGINE
 The Damia integration
engine compiles and
executes data mashups.
 The figure depicts the
overall architecture and
relevant APIs.
 The integration engine is
comprised of a flow
compiler, metadata
services, and an
augmentation engine.
11
DAMIA INTEGRATION
ENGINE(cont.)
 The flow compiler
receives an XML
specification of a data
mashup and
translates it into an
augmentation flow,
which is the
manifestation of the
data mashup that is
executed by the
augmentation engine.
12
DAMIA INTEGRATION
ENGINE(cont.)
 Metadata services stores the
augmentation flow and the
original XML representation of
the data mashup, associating
it with a resource identifier that
can be used in subsequent
execute, edit, and delete
operations.
 Metadata services also
manages metadata and
functions needed by the flow
compiler and augmentation
engine in order to perform
their tasks.
13
DAMIA INTEGRATION
ENGINE(cont.)
 The augmentation
engine executes a
data mashup.
 It receives the
resource identifier of
the corresponding
augmentation flow,
which it retrieves
from metadata
services and
evaluates.
14
DAMIA INTEGRATION ENGINE-
Ingestion Layer
 The Damia ingestion
layer is comprised of
connectors, ingestion
functions, an Import
operator, and a
resource cache.
15
DAMIA INTEGRATION ENGINE-
Augmentation Layer
 The Damia
augmentation layer
is comprised of a set
of augmentation
operators that are
closed under the
augmentation-level
data model.
16
DAMIA INTEGRATION ENGINE-
Publication Layer
 The publication layer
transforms an
instance of the
augmentation-level
data model into a
specific
representation, like
ATOM, RSS, CSV, or
JSON, and then
serializes the result
for HTTP transfer.
17
Flow Compiler Overview
 The flow compiler
takes an XML
document describing
the data mashup, and
emits a PHP script
comprised of
augmentation
operator classes
organized into an
augmentation flow.
18
Flow Compiler-Parser Module
 A parser module parses the XML representation
of a data mashup into an augmentation graph
representing an initial augmentation flow.
19
Flow Compiler-Rewrite Module
 A rewrite module transforms the augmentation
graph into a more efficient representation.
20
Flow CompilerCode Generation Module
 A code generation module traverses the
augmentation graph and emits a PHP script.
21
Customer Service Application
 EX:
For our scenario, imagine that Cassie is a
customer service representative for JK
Enterprises who is fielding a call from
customer Bob regarding a dispute in his
credit billing statement. Apparently, Bob
has been billed twice on a purchase of an
appliance item and is calling to complain
about this error.
22
Customer Service
Application(cont.)
 Validate the customer details(驗證客戶詳細信息 )
 Pull up the customer profile and transaction
details(取得客戶資料和交易細節 )
 View the billing statements(查看帳單)
 Validate the dispute(驗證這個爭論)
 Process a dispute resolution workflow(爭論解決
程序)
23
Customer Service
Application(cont.)
 Damia technology provides an easy way to enable this
extension.
 The first step is to create a REST service from GNR that
generates a list of phonetically matching names given a
roughly spelled input name.
24
Customer Service
Application(cont.)
 Once we have this service available, the
next step is to create a Damia data mashup
that can combine GNR service output with
the matching customer accounts in JK
Enterprise's customer database.
25
Conclusion
 Damia enables the creation of data
mashups that combine data from desktop,
web, and traditional IT sources into feeds
that can be consumed by AJAX, and other
types of web applications.
26
~End~
27
Download