Connector
In OBP, most internal functions / methods can have different implementations which follow the same interface. | |These functions are called connector methods and their implementations. | |The default implementation of the connector is the "mapped" connector. | |It's called "mapped" because the default datasource on OBP is a relational database, and access to that database is always done through an Object-Relational Mapper (ORM) called Mapper (from a framework we use called Liftweb). | | |<pre> |[=============] [============] [============] |[.............] [ ] [ ] |[...OBP API...] ===> OBP Endpoints call connector functions (aka methods) ===> [ Connector ] ===> [ Database ] |[.............] The default implementation is called "Mapped" [ (Mapped) ] [ (Adapter) ] |[=============] The Mapped Connector talks to a Database [============] [============] | |</pre> | |However, there are multiple available connector implementations - and you can also mix and create your own.| | |E.g. RabbitMq | |<pre> |[=============] [============] [============] [============] [============] |[ ] [ ] [ ] [ ] [ ] |[ OBP API ] ===> RabbitMq Connector ===> [ RabbitMq ] ===> [ RabbitMq ] [ OBP RabbitMq] ===> [ CBS ] |[ ] Puts OBP Messages [ Connector ] [ Cluster ] [ Adapter ] [ ] |[=============] onto a RabbitMq [============] [============] [============] [============] | |</pre> | | | |You can mix and match them using the Star connector and you can write your own in Scala. You can also write Adapters in any language which respond to messages sent by the connector. | |we use the term "Connector" to mean the Scala/Java/Other JVM code in OBP that connects directly or indirectly to the systems of record i.e. the Core Banking Systems, Payment Systems and Databases. | | | A "Direct Connector" is considered to be one that talks directly to the system of record or existing service layer. | | i.e. API -> Connector -> CBS | | An "Indirect Connector" is considered one which pairs with an Adapter which in turn talks to the system of record or service layer. | | i.e. API -> Connector -> Adapter -> CBS | | The advantage of a Direct connector is that its perhaps simpler. The disadvantage is that you have to code in a JVM language, understand a bit about OBP internals and a bit of Scala. | | The advantage of the Indirect Connector is that you can write the Adapter in any language and the Connector and Adapter are decoupled (you just have to respect the Outbound / Inbound message format). | | The default Connector in OBP is a Direct Connector called "mapped". It is called the "mapped" connector because it talks directly to the OBP database (Postgres, MySQL, Oracle, MSSQL etc.) via the Liftweb ORM which is called Mapper. | |If you want to create your own (Direct) Connector you can fork any of the connectors within OBP. | | | There is a special Connector called the Star Connector which can use functions from all the normal connectors. | | Using the Star Connector we can dynamically reroute function calls to different Connectors per function per bank_id. | | The OBP API Manager has a GUI to manage this or you can use the OBP Method Routing APIs to set destinations for each function call. | | Note: We generate the source code for individual connectors automatically. | |