EMCI - NonStopBanking Middleware eMCI - NonStop Banking Middleware Artur Stefanowicz eMCI Architect Finance Industry Practice Manager, NSIS Compaq Polska.
Post on 25-Dec-2015
250 Views
Preview:
Transcript
eMCI - eMCI - NonStopNonStopBanking Banking Middleware Middleware
Artur Stefanowicz
eMCI Architect
Finance Industry Practice Manager,NSIS Compaq Polska
AgendaAgenda
Business case for eMCIBusiness case for eMCI eMCI foundationseMCI foundations ArchitectureArchitecture Key ideasKey ideas Roots and ReferencesRoots and References
Once upon a time banks were Once upon a time banks were stable and predictable...stable and predictable...
• No single system fits all bank’s No single system fits all bank’s needs, so...needs, so...
• They assemble their infrastructure They assemble their infrastructure by incorporation of ‘best in bread’ by incorporation of ‘best in bread’ apps, what results in…apps, what results in…
• Interconnection maze and...Interconnection maze and...• Loss of consistency,Loss of consistency,• Distributed and isolated data,Distributed and isolated data,• Different platforms, apps, etc.Different platforms, apps, etc.
Strong, global competitionStrong, global competition Time to market is keyTime to market is key Non stop operation is a mustNon stop operation is a must Dramatic change for Customer Dramatic change for Customer
perspectiveperspective Implicit acceptance of ever Implicit acceptance of ever
growing technological frontiersgrowing technological frontiers
Evolutionary visionEvolutionary vision Rapid evolution of business Rapid evolution of business
needs & visionneeds & vision Unification infrastructure very Unification infrastructure very
importantimportantMa ste rCa rd
Access
D ine rs C lubD E L TA
Business case for eMCIBusiness case for eMCI
Difficulties with banking application integrationDifficulties with banking application integration different formats & protocolsdifferent formats & protocols different access mechanismsdifferent access mechanisms
Ad-hoc integration model consequencesAd-hoc integration model consequences many interfaces - maintenance problemsmany interfaces - maintenance problems need to develop couple of interfaces when adding new need to develop couple of interfaces when adding new
appapp Economy of integration effortsEconomy of integration efforts
Time & cost to deploy product, channel, service Availability ?...
24 hours a day24 hours a day
7 days a week7 days a week
365 days a year365 days a year
Business case cont.Business case cont.
In the electronic banking area the most impacting In the electronic banking area the most impacting problems are:problems are:
many sources of transactionsmany sources of transactions separate databases, lack of synchronization which separate databases, lack of synchronization which
leads to inability to represent current coherent view on leads to inability to represent current coherent view on accountsaccounts
hard to route transactions to different host appshard to route transactions to different host apps changing requirements for handling transactions from changing requirements for handling transactions from
different distribution channelsdifferent distribution channels Lack of defined Architecture/Vision for Echanels Lack of defined Architecture/Vision for Echanels
evolutionevolution
Integration problemsIntegration problems
Private interfaces
Each app needs a separate adapter for each applicationit cooperates with
eMCI - base ideaseMCI - base ideas
Universal banking Universal banking middlewaremiddleware platform platform both on-line…both on-line… and batch applicationsand batch applications
Architecture for broad range of electronic Architecture for broad range of electronic banking solutionsbanking solutions
with defined evolution pathwith defined evolution path Fault-tolerant, 24x365 service deliveryFault-tolerant, 24x365 service delivery
Base functionalityBase functionality De-coupling of transaction sources from transaction De-coupling of transaction sources from transaction
destinationsdestinations reuse of application reuse of application gatewaysgateways
Reliable transaction routing between banking applicationsReliable transaction routing between banking applications Business transaction flow modelingBusiness transaction flow modeling
using transactional scripting using transactional scripting Unification of transaction representationUnification of transaction representation
XML-likeXML-like Continuos operationContinuos operation
based on RTRbased on RTR
eMCI - exampleeMCI - example
LAN
Serwery MCI
Serwer Obslugi ISO8583 P B X
T elefonyPC
T elefon
SerwerIVR dla
CallCenter
Stanowiskarobocze w Call
Center
ATMATM
ATM
X.25
LAN
City
W domuW pracy
Centralny SystemBankowy
LAN
T elefon
LAN, WAN
Internet
$
Oddzial
W AN
$
Oddzial
$
Oddzial
dial-up
Inne sieci - Europay,Visa, Polcard
LAN
ELIXIR -Polecenie
Zaplaty
PC
Internet Banking
Klient korporacyjny
SerwerBRESOK2000
LAN
Base architectureBase architecture
KernelGateway
External Front-End
System
Private Interface Internal Message Format
Tra
ns
ac
tio
n R
ou
tin
g
External Back-End
System
eMCI Architecture - key ideaseMCI Architecture - key ideas Allow seamless integration for broad range of apps, Allow seamless integration for broad range of apps,
minimize efforts for adding new appminimize efforts for adding new app Isolation of transaction sources and destinationsIsolation of transaction sources and destinations Internal Message Format (XML)Internal Message Format (XML) GTW-CTC-Destination modelGTW-CTC-Destination model
Full control over transaction executionFull control over transaction execution Scripting mechanism for transaction flow definitionScripting mechanism for transaction flow definition
Detailed run-time information & controlDetailed run-time information & control elaborated config & mgt infrastructureelaborated config & mgt infrastructure
Fault-tolerant transport layerFault-tolerant transport layer RTR-CRTR-eMCIRTR-CRTR-eMCI
Sof
twar
e co
mpo
nent
sS
oftw
are
com
pone
nts
eMCI Transaction ScriptseMCI Transaction Scripts Key eMCI conceptKey eMCI concept The way to define business rules for transaction The way to define business rules for transaction
executionexecution Each transaction type has its corresponding transaction Each transaction type has its corresponding transaction
scriptscript Executed by CTC - scripting engineExecuted by CTC - scripting engine CTC bridges RTR server and client channelsCTC bridges RTR server and client channels
Scripting languagesScripting languages Perl, Tcl with RTR extensions embeddedPerl, Tcl with RTR extensions embedded
Platforms: NT, UNIX, OpenVMS … LinuxPlatforms: NT, UNIX, OpenVMS … Linux
Controlling Tx flowControlling Tx flow
Bank MicroKernel
Common Authorization Database
Gateway
Tra
ns
ac
tio
n R
ou
tin
g
Host Banking System
PROFILE, IBS90,etc
ATM switch iso8583
Call Center
Internet Banking
Electronic Banking
Transaction flow
eMCI Tx Scripts APIeMCI Tx Scripts API
High level abstraction for transactional High level abstraction for transactional communicationcommunication
API CallsAPI Calls Call, AsyncCallCall, AsyncCall CheckReply, GetReplyCheckReply, GetReply BroadcastBroadcast Independent Tx callsIndependent Tx calls
Simple and easy to useSimple and easy to use
Script exampleScript example...
my ($text) = @_;# independent tx example - explicit tx controlIndepStartTx(1000);IndepAsyncCall($IND_APP, $IND_SVC, $IND_FUN, $text);if(IndepAcceptTx() < 0) { # if error of independent tx, reject initiator tx... return -1;}# standard, implicit transactionreturn Call($APP, $SVC, $FUN, $ARGV[0]);
Configuration and managementConfiguration and management
CFGMGR
Komponenty MCI
CFG-PROTOCOLInterfejs CFG-PROTOCOL
Interfejs CFG-PROTOCOLInterfejs CFG-PROTOCOL
CFGINTERFACE
eMCI ConsoleeMCI Console
eMCI transporteMCI transport CRTR - OO layer over RTRCRTR - OO layer over RTR C++ FrameworkC++ Framework
Buffer encapsulation, dynamic type recognition & object Buffer encapsulation, dynamic type recognition & object construction, automatic compression and large message construction, automatic compression and large message segmentationsegmentation
Automatic dispatching to appropriate serviceAutomatic dispatching to appropriate service Encapsulates both transactional and broadcast Encapsulates both transactional and broadcast
communication in RPC-like, call-back modelcommunication in RPC-like, call-back model Handler based model for server structureHandler based model for server structure
Simplified server structureSimplified server structure All common mechanisms implicitAll common mechanisms implicit
eMCI/CRTR handlerseMCI/CRTR handlers#ifndef _ECHO_HANDLER_HXX_#ifndef _ECHO_HANDLER_HXX_
#define _ECHO_HANDLER_HXX_#define _ECHO_HANDLER_HXX_
#include "mci_handler.hxx"#include "mci_handler.hxx"
/**/**
* Handler odsylajacy z powrotem wszystkie otrzymane komunikaty.* Handler odsylajacy z powrotem wszystkie otrzymane komunikaty.
**/**/
class CEchoHandler : public CMciHandlerclass CEchoHandler : public CMciHandler
{{
public:public:
HandleResult HandleResult
OnMsg1(const string& msgIn, string& msgOut);OnMsg1(const string& msgIn, string& msgOut);
HandleResultHandleResult
OnMsgN(const string& msgIn, string& msgOut);OnMsgN(const string& msgIn, string& msgOut);
HandleResultHandleResult
WasProcessed(const string& msgIn);WasProcessed(const string& msgIn);
HandleResultHandleResult
OnPrepare();OnPrepare();
voidvoid
OnAccepted(rtr_reason_t reason);OnAccepted(rtr_reason_t reason);
voidvoid
OnRejected(rtr_reason_t reason);OnRejected(rtr_reason_t reason);
};};
#endif #endif
eMCI Server exampleeMCI Server example
int main(int argc, char* argv[]){
try { ...server.RegisterHandler( svc_no, fun, new CEchoHandler); server.Run(); }catch (CErrException& exception) {
cerr << "[--------- EXCEPTION ----------]" << endl; exception.PrintDescrOn(cerr);
exception.PrintTraceOn(cerr); }
return 0;}
Process topologyProcess topology
MCI/CTC Machines
RTR
GTW
KNL
MCI/BMK Machines
CTC
CTC
KNL
CFG
GTW KNL
EVL
RTR
GTW
GTW
CFG EVL
MCI/GTW Machines
GTW
eMCI rootseMCI roots
Handlobank project ‘98/99Handlobank project ‘98/99 Electronic Banking Architecture for BRE ‘98Electronic Banking Architecture for BRE ‘98 DirectDebit project for BRE ‘98DirectDebit project for BRE ‘98 Requirements analysis (July ‘98)Requirements analysis (July ‘98)
based on professional market reportsbased on professional market reports competing products analysiscompeting products analysis
Internal project eMCI (Oct ‘98)Internal project eMCI (Oct ‘98) v2.0 released in March ‘99v2.0 released in March ‘99
ReferencesReferences
HandlobankHandlobank Bank Przemyslowo-HandlowyBank Przemyslowo-Handlowy Bank Rozwoju EksportuBank Rozwoju Eksportu
top related