Folie 0

advertisement
From Business Process Analysis
up to Business Activity Monitoring
Rainer von Ammon
rainer.ammon@citt-online.com
www.citt-online.com
fh
Oberösterreich
University Projects/PhD‘s and Teaching
Germany University Regensburg
1
fh
Oberösterreich
… about 50 Students for the Course
„Distributed Systems“
2
fh
Oberösterreich
… about 80 Diploma Students
Austria Software Park Hagenberg/Linz
3
fh
Oberösterreich
Idea of the C-I-T-T
fh
Oberösterreich
Teachings in Computer Science
Applied Research Subjects
Attractive Jobs with the
Chance of a Career
Center-of-Information-Technology-Transfer
Know How Transfer
Professional Consulting
Cooperating in Applied Teachings
Banks/
Insurances
Telco‘s
Industries …
4
fh
Oberösterreich
Institutes
Teachings:
7. Semester: BPM/BAM/CEP/SOA/EDA
together with norisbank
8. Semester: Wiss. und populärwiss.
Publizieren
Jobst
Klarl
(Brandl)
Teachings:
Business
Information
Systems
IMIK
8. Semester: BPM/BAM/CEP/SOA/EDA
together with Deut. Post
5. Semester: EAI/SOA/BPM/MDA
PhD‘s
fh
Oberösterreich
International Research
& Teaching
Stanford Uni
Caltech Uni
M.I.T. Cambridge…
Haifa
- IBM research labs &
- Technion Uni
IBM New York
Watson Research Centers
-
Internships
permanent employees
Visiting professor
Residencies
Lab Böblingen
…
(Tampere University
of Technology)
Teaching & Recruiting
Industrial Partnership
Schweden
Business Development
Finnland
Under
construction
Marketing
Current main
subjects:
1. BPM/BAM/CEP/SOA
Presales
2. SOA, SIP, Security, ESB
The day after 1 Recruiting
year
…
(Sept. 2006)
a lot happend in the meantime…
Projects
Mind Makers / Lead Gen‘s
1 FMSB (since Oct 05 resp. Dec. 04)
Events
2 Deutsche Post (15.2./9.3….)
Journals
3 norisbank (17.2./8.3./7.4….)
1 ICWS06, PPPJ06, CEP-Symp.
1 Bank Magazin
4 IDS /IBM (1.2. / 20.2./22.3., Juli07)
2 JAX, W-JAX
2 JavaSpektrum
5 BMW + Bank (23.3., Workshop)
1 BEA (technical director)
3 Business Integr. Forum
3 JavaMagazin
6 HVB (April 06, WF-Modellierung, Sofortkredit…)
2 IDS
4 EAI-Zurich
4 ObjektSpektrum
7 DreBa (Neukundengewinnung…)
3 IBM
5 OOP
5 dev2dev
8 ComBa (ETEC…)
4 Microsoft
6 IDS-Events
6…
9 Sparda (workshop invitation, Q3)
5 ILOG
7 Yorktown Heights
10 DZ-Bank (together with Post)
6 (SAP), (Oracle)
8 Dagstuhl seminar
11 FinanzIT (May)
7 Coral8 …
9 Hotel-Events
12 Audi… DC-Bank (30.5.)…
Oberösterreich
8 (Apama / StreamBase)
Technology Partnerships
fh
5
Agenda
•
•
•
•
•
•
•
•
Was hat Business Process Management (BPM) und Business Activity Monitoring
(BAM) mit BPA und SOA zu tun?
Warum startet man SOA-Projekte am besten mit BAM?
Konzepte serviceorientierter Architekturen – Wo und wie beginnt man mit
dem Schneiden von Services?
Oder schneidet man besser gar nicht in monolithischen Code?
Was die Fachabteilungen in den nächsten Jahren beschäftigen wird: SOAgerechte Remodellierung von Geschäftsprozessen und Definieren von Event
Patterns
Die derzeitige „standardisierte Verwirrung“: Standards, Fast-Standards,
keine Standards – die Kette der Standards von SOA, BPM bis BAM am Beispiel
von eEPK oder UML, BPEL, BPEL-J, CEI und CBE usw.
Das zukünftige Referenz-Modell für BPM/BAM/CEP-Anwendungen
Warum brauchen wir ein durchgängiges BAM/SAM?
6
fh
Oberösterreich
„... Andere steuern ihre Prozesse bereits,
wir denken darüber nach ....“
Für die Steuerung der Stromversorgung existieren
Frühwarnsysteme, die Überbelastungen anzeigen
und bei Ausfällen Notfallsysteme zeitnah in die
Versorgungsprozesse einbeziehen.
Ein Auto hat bereits viele tausend Kilometer hinter sich
bevor es gebaut ist. Die Zulieferung der einzelnen
Komponenten erfolgt „just in time“. Engpasssituationen
werden zeitnah ausgesteuert.
... und Bankabwicklungsprozesse ?
7
fh
Oberösterreich
Steuerung und Überwachung von Prozessen ist ...
Darstellung der Auswirkungen von Systemverfügbarkeiten und
-störungen
Monitoring zeitkritischer
Enpassfaktoren und
Transaktionsverfolgung
Workflowsteuerung
Prozess- und systemverknüpftes Notfall- und
Störungsmanagement
Geschäftsprozessmonitoring
Transparenz über
durchgängig
dargestellte
Prozesse
Überwachung der
SLA-Einhaltung
8
fh
Oberösterreich
Das Problem fängt schon bei der Prozessdarstellung an !
Abwicklungsprozesse bestehen aus manuellen und
automatisierten (digitalisierten) bankfachlichen
Prozessschritten
Automatische
Abrechnung
Bestätigung
vornehmen
Zur
Abrechnung
freigeben
Meldewesen
Prinzipiell sind manuelle
Prozesse dokumentiert.
Automatische
Lieferung
Abstimmung
Lieferung
ausführen
Outputmanagement
Automatisierte (digitale) Fachprozesse
sind nur technisch dokumentiert.
9
fh
Oberösterreich
Integration von manuellen Prozessen mit IT-Systemen, z.B. über das PASSPortal* der HVB AG
+
ARIS-Prozessmodell
Darstellung der digitalen Prozessschritte
PASS: Prozess, Architektur, Strukturen und Standards
Bestätigung
Bestätigung
vornehmen
vornehmen
WEBSYS
Abrechnung
Abrechnung
durchführen
durchführen
Technische
Technische
Abrechnung
Abrechnung
durchführen
TCAM
WHSWABSY
WABSY WG1
(ZEO)
HANSE HM
(Auftragsbestand)
HANSE1 XY2
(HOB)
MERVA
Bestätigung und
Gegenbestätigung
der Geschäftsdaten
an den Kontrahenten
(nicht bei Retail)
Orderzugang
WABSY S987
(ESS)
Belieferung ESS
aus Orderbestand
(Ausführungsdaten)
Wenn Xontro Frankfurt
und WP ECCp-fähig
MARCO MR6
(HOA)
RODEO
WABSY WG2
(OLA)
Wenn nicht Xontro
Frankfurt und
nicht ECCP-fähig
Check, ob
stückzinsrelevant
und Rückinfo an WABSY
WABSY
Systemabhängigkeiten
und digitaler Ablauf der Abrechnung
zu einzelnen manuellen Prozessen
S986
(Stückzinsberechnung)
WABSY
Out-SSN
Versorgung AWV
Compliance,
TSY-DB etc.
AWVP
Treasury
Datenbank
(TSY-DB)
10
fh
Oberösterreich
Für Zusammenführung von Informationen sind Abgriffstellen in techn.
Prozessen zu definieren
Ganzheitlicher Abwicklungsprozess
Geschäftsprozessmonitoring
(manuelle und digitale Prozessschritte)
(Analyse der Prozess- und Systemperformance)
Frühwarnindikatoren überwachen
Trend-/ Schwankungsanalyse
Ursachenanalyse
SLA – Einhaltung nachweisen
Durchgängige Prozesskennzahlen
für Effizienz und Qualität (SLA)
11
fh
Oberösterreich
Bedenken von potentiellen Anwendern aus ersten Projekten 2005
...kein Standard-Tool auf dem Markt
verfügbar
...hoher monetärer Aufwand erforderlich
...kurzfristig nicht realisierbar
Entscheidung:
Suche nach erprobten und
einfachen Lösungen verstärken
und Erfahrungen im Zuge von
Pilotprojekten sammeln
Vorgehen Step by Step
...hoher Programmieraufwand
...unkalkulierbare Nachfolgeaufwände
...Nutzen im frühen Stadium der
Entwicklung schwer quantifizierbar
Proof of Concept am Beispiel
„Workflow
Optionsscheinabwicklung“
12
fh
Oberösterreich
Beispiel: „EAI“ Referenzmodell eines Anwenders
Zwischen EAI und SOA wurde bisher nicht getrennt
Prototypischer Workflow fokussiert Stufe 3
13
fh
Oberösterreich
Komplexe Prozess- und Systemwelt
Hohe Anzahl von
Einzelprozessen
(eEPKs)
HVB AG: ca. 2.500
FMSB: ca. 700
Schnittstellen
zwischen manuellen
und technischen
Prozessen
und Organisationseinheiten
Vielzahl von
Systemkomponenten
HVB AG: ca. 1.000
FMSB: ca. 80
Primäre Eigenentwicklungen von
Systemen und
Systemkomponenten
(HOST / COBOL)
Bearbeitungsvolumen der
FMSB
15 Mio HandelsTransaktionen p.a.
320.000 Geld- und
DevisenTransaktionen p.a.
820.000 Kundendepots
14
fh
Oberösterreich
15
fh
Oberösterreich
In mittelständischen Unternehmen müssen bereits ca. 60
Applikationen integriert werden: Traditionell Point-to-Point- und
MOM-basierte Hub&Spoke-Verfahren – bei HVB ca. 1.100 App’s!
Screen
Scrape
Download
File
Message
Queue
Sockets
Download
File
ORB
Screen
Scrape
Transaction
File
Screen
Scrape
Transaction
File
Sockets
CICS Gateway
RPC
APPC
ORB
Message
Message
Queue
Transaction
File
Screen
Scrape
Transaction
File
CICS Gateway
Download
Message
File
Message
Queue
APPC
RPC
16
fh
Oberösterreich
Das Ziel: Service Integration mit einem
Enterprise Service Bus
Customer Portal
Service Consumption
Service Integration
and Management
Service
Orchestration
Service Creation
Resources
Service Bus
Purchase Order
Management Process
Billing
Process
People
Mainframe
Customer
Management
Process
CRM
Inventory
Management
Process
ERP
fh
Trading 17
Partners
Oberösterreich
Die Zielarchitektur ab Herbst 06, wenn
BPEL 2.x “approved” ist
Service Consumers
Service Orchestration
(OpenSource or BEA
WLI 9.x or IBM Process
Server or Oracle…)
Service Bus Layer
(SOPware or
AquaLogic Service Bus
or WebSphere …)
Service Enablement
(WLI 9.x or WebSphere
or …)
Resources
Portals
Composite Applications
Mobile
Purchase Order Management Process
BPEL
Messaging and Service Management
Service Bus
Billing
Service
Process
People
Customer
Management
Process
Service
BPELJ
Mainframe
CRM
Inventory
Management
Process
Service
Trading
Partners 18
ERP
fh
Oberösterreich
Prozessdesign erfolgt mit dem ARIS-Toolset –
Frage: Kann „Semantische Lücke“ zwischen Fach- und IT-Abteilungen mittels
neuer IDE‘s geschlossen werden?
Kauf und
Verkauf
TCAM
WHS
TCAM
Maske
WHS Tcam
Verwalten
Geschäfte
SOP
202.20.02.15.01
TCAM-Kontrollfall
bearbeiten
Kontrollfall
liegt vor
2,000000 Minute(n)
Kontrollfall
bearbeiten
FMS2WA
0,990000
Geschäft kann
automatisch
abgerechnet
werden
WHS
TCAM
Maske
WHS Tcam
Verwalten
Geschäfte
0,010000
WHS
TCAM
0,100000 Minute(n)
Geschäft
freigeben
FMS2WA
Maske
WHS Tcam
Verwalten
Geschäfte
Geschäft muß
manuell abgerechnet werden
0,150000 Minute(n)
Extra-Ticket
drucken
FMS2WA
Drucker
Backoffice
Flag steht
auf ja
TCAMAbrechnung
durchführen
Extra-Ticket
Extra- bzw.
Handelsticket
liegt vor
ZEO
Erfassung
19
fh
Oberösterreich
Was wird was von eEPK in BPEL/JPD-Darstellung?
Und verstehen das beide „Welten“?
 Alle Prozesse müssen SOA-gerecht
remodelliert werden und dazu müssen beide
Welten an einem Tisch sitzen!
20
fh
Oberösterreich
But let’s start from behind:
The new hype is BAM and Enterpise Cockpits
• By inserting measuring
points in the business
process…
• Monitoring on business
level
• Cockpit functions for the
management
• Analyses in „Real Time“
21
fh
Oberösterreich
Requirements for BAM-Tools –
still open topics of research
Bringing Order to the Business Activity Monitoring Space
06/19/2005
By David Luckham, Professor Emeritus of Electrical Engineering, Stanford
University
• There’s a global cloud of business events
• Many sources of events
• Medium sized stock brokerage may be dealing
with thousands of business events per second
e.g. eTrade > 2000, Charles Schwab > 14.000… ^= transaction rates
but there are much more business events than transactions!
22
fh
Oberösterreich
Requirements for BAM-Tools –
still open topics of research
• various classes of BAM tools
•
monitor events from the enterprise cloud in real-time
• metrics (often called Key Performance Indicators,
• display them on a
•
KPIs)
dashboard with fancy graphics
alert you when the metrics get critical - like “low inventory”, or “retail website overload”.
• more advanced tools also give you
to your business
rules that trigger on alerts and let you specify proactive repairs
• BPM/BAM suites that can monitor everything on your IT Infrastructure,
decide how your business processes depend upon various IT assets,
deliver an up to the second view of how your business processes are performing,
and let you go back to remodeling the processes at any time
• discovering the patterns of events that are really significant.
Connecting the dots in the event cloud is what BAM is really
about
23
fh
Oberösterreich
Requirements for BAM-Tools –
still open topics of research
• Why is the BAM tools space chaotic?
• First of all, we might want classifications of BAM tools
• Secondly,
standards for event processing
• Thirdly, technology checklists whereby we would know how a tool actually works
as opposed to what the marketing department says it does.
None of this exists yet
• The first attempts at a Common Event Infrastructure standard
for BAM
appeared in 2004
24
fh
Oberösterreich
Requirements for BAM-Tools –
current State of the Art
Here’s a start at a BAM event processing checklist
1. Real-time event data computation.
This means that the tool can use the data contained in events to compute metrics (i.e., KPIs) in real-time
and continuously update them on the graphics displays or feed the metrics to other applications.
2. Single event triggering.
The tool can react to single events, either predefined or defined by the user, e.g., alerts indicating
critical KPIs, and then take actions also predefined or specified by the user. Actions may involve sending
email messages, etc.
Usually the tool will supply a capability to define event triggered reactive rules, and
may combine this with capabilities under item #1.
3. Event streams processing.
An event stream is a real-time, continuous, ordered (by arrival time at the tool, or
by a time stamping mechanism) sequence of events. Here, the tool assumes the event input is a
stream.
This assumption allows optimization of some kinds of event processing that fall under item #1.
It is an appropriate way to handle stockmarket feeds, for example.
However, it is impossible to control the order in which events from an enterprise cloud arrive at the tool.
So the stream order cannot reflect the relationships that exist between events as a result of enterprise
activities.
We’re talking about relationships such as which events caused other events, which events happened
independently, or their creation times -- the times at which the events actually happened.
If a tool turns the cloud into a stream before it starts processing events,
then it can only detect simple patterns of events in the event cloud - essentially Boolean and’s and
or’s of events.
25
fh
Oberösterreich
Requirements for BAM-Tools –
still open topics of research
4. Complex event pattern triggering.
Tools that satisfy this checklist item can detect complex patterns of many events in the global event cloud of
the enterprise and then react to them in various ways.
Typically, a complex pattern is made up of many events, often created at different locations in an enterprise and
possibly in different time zones. Complex patterns may involve events that are causally related and other events
that happened independently. A complex pattern consists not only of the events but also of
the relationships between the events.
For example, the pattern of activity in a set of concurrent or collaborating business processes.
Other common examples can be found in patterns of events in fraudulent activity, or violations of SEC regulations
or other conformance issues.
These tools have to capture information about the event cloud in order to detect complex patterns.
For example, causality between events, independence and the creation time of each event.
Typically, such tools encode this information in the events themselves –
so that each event contains its own genetic information.
When a tool processes an event it can tell from the encoded genetic data how that event is related to other
events in the cloud. Many enterprise IT systems already put some of this encoding into events when they are
created by using various identifiers such as message Ids, transaction Ids, etc. So, encoding the cloud is not
always very difficult.
26
fh
Oberösterreich
Requirements for BAM-Tools –
still open topics of research
5. Event pattern abstraction.
Tools that satisfy item #4 may go a step further by providing rules to create new events
whenever an event pattern matches. The new events can be constructed to contain some of the
information contained in the events that matched the pattern. And the new events can be processed by the tool
just like other events in the cloud.
This is called event pattern abstraction. It is a step towards supplying higher level views
- e.g., executive reports - of patterns of complicated business activity. Important data is included in the
new event, and unnecessary details are omitted, the new event is an abstraction.
27
fh
Oberösterreich
Requirements for BAM-Tools –
still open topics of research
Right now (2006), most BAM tools will only check off items #1 and #2.
Even so, they’re proving to be very useful
Many tools use finite state machines or Java scripts to define patterns of events and reactive rules.
These methods, even when supported by GUIs, are too low level. As a result they will lead to
problems later on.
As a tool gets used on more demanding management problems, the sets of event patterns and
event pattern triggered rules will grow in size. Patterns and rules management then becomes an issue.
It is not easy to check a bunch of Java scripts to uncover mutually exclusive or redundant rules
(e.g., if A matches a set of events then B will match the same set of events).
High level, declarative event pattern languages would be preferable
„… Now we think it will take six to eight years."
And the advice is to start planning for it now.
28
fh
Oberösterreich
The first 3 steps today starting with
Monitoring Business Processes and Activities
event cloud with thousands of events per sec…
passwdchange
new auto pay
deposit
transfer
enquiry
deposit
new auto pay
logout
account login
enquiry
account login
account login
withdrawal
deposit
new auto pay
activity history
logout
passwdchange
event patterns and complex event processing…
account login
withdrawal
account balance
deposit
transfer
enquiry
account login
enquiry
new auto pay
account login
logout
activity history
logout
…e.g. above a bank
The first 3 steps:
1. Precise description of patterns of events
2. Detecting patterns in the event cloud
3. Abstraction of complex event pattern instances to higher level events
Oberösterreich
fh
29
What we and our PhD-students will do in the
future in cooperation with e.g. …
30
fh
Oberösterreich
But with BAM comes SOA!
Example for SOA:
the business process of account opening
This bank has
about 3.000
different business
processes
The business
process of account
opening has
70.000 Cobol LoCs
> 3.000 processes
must be designed
70.000 LoCs per
variant of process
/*
*
* FUNCTION NAME:
Miniapp_i::pruefe_name
*
* FUNCTIONAL DESCRIPTION:
*
*
Method function for pruefe_name.
*
(Implementation : Miniapp_i)
*
*/
CORBA::Long Miniapp_i::pruefe_name (
const char * val)
{
CORBA::Long _method_result = (CORBA::Long) 0;
In this bank
there‘re about 20
variants of the
account opening
process
Let‘s calculate:
1 folder can retain 400 pages
à 70 lines (font size 6)
70000 LoCs : 70 lines per page = 1000 pages : 400 pages per
folder = 2,5 folder x 20 variants = 50 folder
/* M3_PRESERVE_BEGIN(Miniapp_i::pruefe_name) */
/* Insert code that you want preserved here */
TP::userlog ("bin im server");
if (stricmp ("Kiki", val) != 0)
_method_result =
1;
else _method_result = 0;
/* M3_PRESERVE_END(Miniapp_i::pruefe_name) */
return _method_result;
}
/* M3_PRESERVE_BEGIN(MiniappFactory_i) */
/* Insert code that you want preserved here */
31
fh
Oberösterreich
Example for SOA:
the business process of account opening
- only an impression of dimensions Let‘s calculate once more:
1 folder with 400 pages = 10 cm
1 process variant = 2,5 folders
10 cm x 2,5 folders = 25 cm x 20 variants
25 cm per process
=5m
32
fh
Oberösterreich
The problem for SOA:
Legacy Systems as monoliths and dead code
- classical strategy: putting up fences around 20 variants in 5 m folders means 1,4 millions LoCs
Billions of lines of Cobol code in the world
25 cm per process
(ca.
220.000.000.000 Cobol locs used in 2004, 5.000.000.000 new Cobol locs per
year (Gartner))
Until today: 80 % Cobol vs 20 % Java
The discipline of Software
Engineering assumes, that
about 30 % of these
billions COBOL LoCs are
dead resp. nobody knows
yet what these LoCs are
doing
33
fh
Oberösterreich
The problem for SOA:
Legacy Systems as monoliths and dead resp. unknown code
- but now: how to tailor SOA services?! 20 variants in 5 m folders means 1,4 millions LoCs
Not all comes from Gartner,
something is from Schiller e.g.:
"Fest gemauert in der
Erden / Steht die
Form, aus Code
gebrannt…“
/*
*
/*
* FUNCTION
NAME:
Miniapp_i::pruefe_name
*
*
/*
* FUNCTION
NAME:
Miniapp_i::pruefe_name
* FUNCTIONAL
DESCRIPTION:
*
*
*
* FUNCTION
NAME:
Miniapp_i::pruefe_name
* FUNCTIONAL
DESCRIPTION:
*
Method
function for
pruefe_name.
*
*
*
(Implementation : Miniapp_i)
* FUNCTIONAL
DESCRIPTION:
*
Method
function for
pruefe_name.
*
*(Implementation : Miniapp_i)
*
*/
*
Method function for pruefe_name.
*
(Implementation : Miniapp_i)
*/ *
*
CORBA::Long Miniapp_i::pruefe_name (
*/
const char * val)
CORBA::Long Miniapp_i::pruefe_name (
const char * val)
{
CORBA::Long Miniapp_i::pruefe_name (
CORBA::Long _method_result = (CORBA::Long) 0;
const char * val)
{
CORBA::Long _method_result = (CORBA::Long)
/* M3_PRESERVE_BEGIN(Miniapp_i::pruefe_name)
*/ 0;
{
/* Insert code that you want preserved here */
CORBA::Long _method_result = (CORBA::Long)
/* M3_PRESERVE_BEGIN(Miniapp_i::pruefe_name)
*/ 0;
/* Insert codeTP::userlog
that you want
preserved
here
*/
("bin im server");
/* M3_PRESERVE_BEGIN(Miniapp_i::pruefe_name) */
if (stricmp ("Kiki", val) != 0)
/* Insert codeTP::userlog
that you want
preserved
here */
("bin
im server");
_method_result
= 1;
if
(stricmp
("Kiki",
val)
!=
0)
else _method_result = 0;
TP::userlog ("bin
im server"); = 1;
_method_result
if_method_result
(stricmp ("Kiki",=val)
else
0; */!= 0)
/* M3_PRESERVE_END(Miniapp_i::pruefe_name)
_method_result = 1;
return _method_result;
else _method_result = 0; */
/* M3_PRESERVE_END(Miniapp_i::pruefe_name)
}
return _method_result;
/* M3_PRESERVE_END(Miniapp_i::pruefe_name) */
}
/* M3_PRESERVE_BEGIN(MiniappFactory_i)
*/
return _method_result;
/* Insert code that you want preserved here */
}
/* M3_PRESERVE_BEGIN(MiniappFactory_i)
*/
/* Insert code that you want preserved here */
/* M3_PRESERVE_BEGIN(MiniappFactory_i) */
/* Insert code that you want preserved here */
34
fh
Oberösterreich
Start SOA at the Business Processes,
e.g. Multi-Channel Sales in Banks
Problem: different processes behind each channel?!?!
We can‘t do
real time BAM!
Problem: reconciliation of data and processes takes ??? days?!?!
Online,
Service Terminals
Initiative
After
Sales
Contact Center
Branch
Consulting
Sales
typical bank-customer process in Retail Banking
35
fh
Oberösterreich
Design horizontal and vertical coupling of services
Example: Consumer credit process
Service
Consumer
Loan
Consulting
Credit
Investigation
SOAP RMI
IIOP
SOAP
Service
Provider
Consultation
System
Credit
Reporting
Agency
Loan
Awarded
SOAP
Costing
System
Credit
Processing
In an SOA, the process is controlled by the
service consumer.
SOAP
RPC
Value Date / Securities
Payment
Management
Reporting
Service providers can
implement processes
and also call services.
SOAP SOAP RPC
SOAP1 way
Service
Provider
Accouting
System
...
Reporting
Data is accessed via
the service provider.
Not all is „SOAP“ resp. „Simple“ in the real life!
36
fh
Oberösterreich
New Approach in a Service Oriented
Architecture (SOA)?
How fine resp. coarse
grained is an appropriate
component or service???
Interface
Method 1
...
Method n
Interface
Method 1
...
Method n
Object
Interface
Method 1
...
Method n
Component
Interface
Method 1
...
Method n
Service
Interface
Method 1
...
Method n
Object
5 – 200 classes in 1
component or service…
(Peter Herzum/
Oliver Sims 2000)
Component
Interface
Method 1
...
Method n
Object
What do criteria like „Self contained“, „Reusability in other contexts“ mean…?! 37
fh
Oberösterreich
Redundant functionality and data, their
modeling in suitable general components, and
their reuse in one or several services
Portlet
Presentation
...
...
Processes
Applications
Portlet
API
Method 1
...
Method n
F APS
R
Interface
Method 1
...
Method n
Service
API
Method 1
...
Method n
APS
FR
Data
D
R
D
R
FR = Function Redundancy
DR = Data Redundancy
38
fh
Oberösterreich
What‘s the appropriate granularity for a
service, e.g. „a shopping cart“?
39
fh
Oberösterreich
Example:Has this component/design pattern
an appropriate granularity for SOA?
Shopping Cart
http://www.welie.com/patterns/shopping-cart.html
Martijn van Welie
Patterns...
Problem
Users want to buy a product
Principle
Metaphor (Conceptual Model)
sind bewährte
Lösungswege,
die textuell
nach einem
bestimmten
Verfahren
beschrieben
werden (z.B.
Gamma et al.
95).
Author
Context
Forces
Solution
A site where users can browse through products and buy them. Users are not
very frequent buyers and are possibly novices. For returning customers,
consider a ONE-CLICK SHOPPING system.
•Users may buy more than one product
•Users may want to select products now but pay later
•Users may decide to purchase somewhere else at any time
Introduce a shopping cart where users can put their products in before they
actually purchase them.
When users view a product description, they can choose to add it to their
shopping cart. After adding an item to their cart, the users are shown the current
contents of the cart. Users can inspect their cart contents at any time using a link
that is available on every page. A persistent mini-cart could also be shown
directly on the content pages.
The description of the cart contents typically includes the name of the items, the
quantity, availability and prices. Users can remove items from their cart if they wish and
change quantities. The description of the goods is a link to the product details. Users
always see the total costs of a purchase, so including shipping costs if applicable. The
users must also be informed of the payment options such as which credit cards are
accepted. From the cart page, the users can continue shopping or proceed with the
checkout procedure. The items stay in the cart for a certain period of time, e.g. 90 days.
In order to purchase the products in the cart they need to select the checkout action.
The checkout is a five step process with the following tasks: Identify Select shipping
address Select payment method Place order The users can abort the checkout
procedure at any step. When users retry the checkout later, they start again at the first
40
fh
Oberösterreich
Now remember the whole picture and what it really means:
Monitoring Business Processes and Activities
event cloud with thousands of events per sec…
passwdchange
new auto pay
deposit
transfer
enquiry
deposit
new auto pay
logout
account login
enquiry
account login
account login
withdrawal
deposit
new auto pay
activity history
logout
passwdchange
event patterns and complex event processing…
account login
withdrawal
account balance
deposit
transfer
enquiry
account login
enquiry
new auto pay
account login
logout
activity history
logout
…e.g. above a bank
The first steps:
1. Redesign your business processes for SOA and BPM
2. Make a SOA, identify services, build WSDL-interfaces…
3. Precise description of patterns of events
4. Detecting patterns in the event cloud
5. Abstraction of complex event pattern instances to higher level events
fh
41
Oberösterreich
The „standardized“ confusion:
Why does it seem so bewildering for the (early)
adopters today?
WebServices
Workflow-Modeling
!=
Orchestration
ARIS
Toolkit
BPEL 1.1
2002/May 2003
Deficits
(e.g. human
interactions)
JSR207 /
BPEL-J
JCP 2003
CITT
Workshop
Apama
BEA
IBM
VIP Tool
Petrinet-Model-Verif.
R&D / Uni
Rational
Nearly all UML tools
BEA?
UML 2.0
Activity Diagram
OMG 2004/5
Abstract + Executable Workflows
IDS
WSFL
WSADIE
IBM 2001
IDS
XLANG
MS 2001
eEPK
IDS ARIS e.g. Arc-Styler
199x
Standardization
takes too much
time, said BEA
Visual
Studio
JPD
BEA 2003
BEA anticipated
BPEL-J
standard for
beeing able to
deliver a tool
platform
And 50 more
JSR207tools…
/
BPEL-J
XPDL 1.0
WfMC Aug. 2002
StreamBase
reality lab
WS-BPEL 2.0
Draft June 2004,
OASIS final approved
??? 2005
XPDL 2.0
WfMC Sept. 2005
JCP ??? 2005
IBM Process
WebLogic Workshop™ - 1. Java IDE
vs. MS Visual Studio Weblogic
et al.
ServerBPM-Systeme as Eclipse-plugins, just announced:
??? BPEL-Extensions ???
BE,SAP,
… SeeBeyond…, open sourceWebSphere
BEA,Tibco
IBM, Oracle,
JBoss
MS
??? No standards yet ???
Coral8
BAM-Tools, no standards presently for:
ARIS PPM
• Common Base Event CBE
iSpheres
Systar
IBM
Monitor
• Common Event Infrastructure CEI … etcpp …
• classification schema for tools
• generic BAM sensors
fh
Oberösterreich
42
2007 wird das Anbieter-Investment in den Support von
Events das Investment in den Support von Services
überschreiten*
Gartner Symposium Itxpo 2004 Yefim Natis, Cannes, France, 31 October - 4 November 2004
Service-Oriented Architecture: Composite Applications, Web Services and Multichannel Applications
*(0,7 Wahrscheinlichkeit)
43
fh
Oberösterreich
The Technology Challenge and the Principle of BPM/BAM/CEP,
e.g. for „Next Generation InstantCredit Systems“
Enterprise cockpit
realize scenario
process instances
Workflow
Modeler
Event
Modeler
set parameters
Monitor / Analyze / Act
Workflow Engine
workflows
based on BPEL
Model ^=
Scenario
analyse
history…
Event
Store
Rules Engine
„special“ SQL
resp. other languages
AppServer
Normalized events,
build businesss level events
Adapters
e.g. RFID, topics of
Pub/Sub, …
Low Level
Event Streams
IF …
AND …
FOLLOWED BY…
WITHIN…
ACTION
e.g. payments
calculate
pott,
offer rates,
profit…
e.g. credit offers (completed)
fh
Oberösterreich
• ARIS PPM
• ORACLE
BAM
• IBM
Monitor
•
•
•
•
•
Network
Application
Service
•
Event Processing
•
Function
•
Classical BAM has top down
view
Technical monitoring has
bottom up view
Gap between business und
technical monitoring
Event Processing identifies
events in both worlds and
correlates
process/functions/service
calls with the related
technical systems
Process
•
Cockpit
Closing the gap between low level and business level
monitoring tools
IBM Tivoli
HP OpenView
BMC
45
CA
… Oberösterreich
fh
Do we need an integrated, seamless BAM/SAM?
Events in a SOA - Messaging
• Events when a message is
processed by a participant
Service
Consumer
E
S
B
XML
XML
E
S
B
Service
Provider
• Contain MessageID,
MessageExchangeID,
ParticipantID, time
• Exceeded response time
triggers an event
Events can be used to track the propagation of messages in a SOA
Non-functional aspects can be monitored
Overhead to implement event generation in each application =>
Integrate event generation in ESB
Source: Deutsche Post World Net
46
fh
Oberösterreich
Do we need an integrated, seamless BAM/SAM?
Events in a SOA – Business Content
XML
• Events when a message is
processed by a participant
Header: Process#4711
Service
Consumer
E<?xml version="1.0"> E
id="1234“ >
S<orderid=“1234”
S
<name>Foo Inc.</name>
B <orderNo>42</orderNo>B
<value>
24000
</value>
</order>
Service
Provider
• Contain MessageID,
MessageExchangeID,
ParticipantID, time
• Correlation events contain
MessageExchangeID and
BusinessID
SOA messaging events do not contain any business-related information
Business content can provide valuable information:
Correlation between technical and business events
Business information as input for BAM
Possible sources for business content:
Message headers (set by sender application)
Message content (e.g., identified by xpath)
Source: Deutsche Post World Net
47
fh
Oberösterreich
Do we need an integrated, seamless BAM/SAM?
SOA Adpt.
CustomerData
SOA Adpt.
Other
Impl. C
Customer
System
SOA Adpt.
Events in a SOA – Complexity
Production
System
Order
Management
Network
Database
Legacy App
Service calls can not be seen in isolation
One service call will often cause others
Any service participant will interact with other systems
Result: Event cloud
48
fh
Oberösterreich
Do we need an integrated, seamless BAM/SAM?
Events in an SOA – Complexity
• SOA events from one
business process
49
Concurrency is inherent in enterprise systems
fh
Oberösterreich
Do we need an integrated, seamless BAM/SAM?
Events in a SOA – Complexity
• SOA events from one
business process
• plus SOA events from other
business processes
• plus other infrastructure
events
50
Complex
Concurrency
events
is inherent
require adequate
in enterprise
processing
systems
fh
Oberösterreich
The Service Bus has to generate all needed event types
automatically! Otherwise we would have to insert
thousands of statements in the application code
Service Consumers
Service Orchestration
(OpenSource or BEA
WLI 9.x or IBM Process
Server or Oracle…)
Service Bus Layer
(SOPware or
AquaLogic Service Bus
or WebSphere …)
Service Enablement
(WLI 9.x or WebSphere
or …)
Resources
Portals
Composite Applications
Mobile
Purchase Order Management Process
BPEL
Messaging and Service Management
Service Bus
Billing
Service
Process
People
Customer
Management
Process
Service
BPELJ
Mainframe
CRM
Inventory
Management
Process
Service
Trading
Partners 51
ERP
fh
Oberösterreich
… Bin ich ein „First Mover“?
Oder ein „Early Follower“?
Oder sitzen wir es aus?!...
Thanks for your attention!
52
fh
Oberösterreich
Download