BOA Islamic Core Banking Application Development Platform BOA (Business Oriented Architecture) 10 months of design and development process Just enough architecture, more enough business Simple, Performant, Scalable, 3 tiered architecure Atomic business components reused in Orchestration and Process layers A unique approach: Automated transaction management Standardized code generation (Code Generator for Developers) Scalable and Fault-Tolerant 3 Tiered Architecture Technology .Net Framework 4.0 WPF WCF, Custom Channel WAS (Windows Process Activation Service) Visual Studio .Net 2012 Team Foundation Server 2012 Windows Server 2008 R2 64 Bit SQL Server 2008 R2 Citrix Netscaler NLB BOA Architecture Why WPF ? Utilize hardware and OS resources Strong binding capabilities Next generation rich user experience Declarative programming Flexibility of user controls (Listbox, Tooltip) Style and theme management made easy Good career path for developers Microsoft’s New UI Approach is based on WPF UI Layer Plug-in architecture Every screen (resource) is a seperate dll Both Web and WPF forms are supported Over 100 Wrapped User Controls Over 75 Business Components Theming User Components and Forms Inheritance Hiearchy Implementing INotifyPropertyChanged for Binding Mechanism WPF Inheritance Mechanism with Base Forms (Standard WPF does not support this) Dialog Forms and Standard Forms EditorBase for Editors BusinessControlBase for BusinessControls Automated Generation of Toolbar and Command Buttons (Actions) The toolbar is generated dynamically according to the rights of the current user Actions, rights and relationship with the screens are fully declarative Even Workflow actions are generated accordingly Command pattern for the button clicks The Container 3 Levels of Navigation Support (Ribbon, Carousel, Tree Menu) Fully Customizable Screens Floating Windows BOA Portal (Welcome Window) Last 20 Transactions Last 20 Customers My Favorites My Duties Quick Access Toolbar User Experience Studies User Experience and Ergonomy Study with Microsoft and BunnyFoot in Oxford Ergonomy Assessment with the Academic World (Prof. Dr. Fethi Çalışır) As a result: UserCentric Design Methodology for IU design Application Layer Request/Response Communication decryption decompression UI UI BOA Response decompression decryption BOA Request compression encryption encryption compression NonTransactionalRequest (default) TransactionalRequest (suitable for transactional requests) MultipleRequest (suitable for batch requests. decreases round-trips.) MultipleTransactionalRequest (suitable for batch transactional requests) Activation and Transport Channel Infrastructure Protocol and channel details are abstracted from the service design Declarative transport channel management Ability to use non-HTTP protocols such as Net-Tcp Custom Channel Custom Encryption Custom Compression Enterprise Service Bus Topology Automated worker process health and recovery management Recycle the worker process if it grows too big or consumes to much resource Request throttling: tuning for optimal number of concurrent connections BOA Engines Definition based (Change without coding) Plugin model (Easily add/remove) Developer friendly model (Minimum code to implement) Auto integrated to each request Channeld based pipeline Parameterized Commission Definitions w/o Manual Coding Parameterized Slip Definitions w/o Manual Coding Commission Engine Slip Engine Account Exception Engine Transaction Cancellation Engine Banknote Engine Process Orchestration Rule Engine Rule Engine Accounting Engine Workflow Engine Parameterized Workflows w/o Manual Coding Authorizatio n Engine Parameterized Accounting Definitions w/o Manual Coding Engine Execution Principal Business Key – BOA’s National ID Every request stamped with a unique 27 digit key Tracking the journey of request through layers Execution Tree No request allowed without a business key Client+Server+Database Logging, Journal 4 levels of logging All business transactions are serialized to Journal Logging at Every Layer Client Errors + Performance Application Server Errors + Performance Database triggers BOALOG Journal Tracking/Monitoring the Journal Tracking any request Tracking any window’s requests External Integration Security Custom Gzip Compression at transport layer over customized channel Rijndael Encryption at transport layer over customized channel SSL over Integration Layer Login branch vs. user branch cross check Assembly version and hash control Business Key Fraud System Tries to find fraud transactions of employees and customers. Analyzes abnormal internet branch transactions to find fraud operations. Analyzes call center employee actions to find suspicious persons. Analyzes customer actions to find suspicious transactions. Fraud Engine Fraud Subsystem Fraud Windows Service Fraud Defination Fraud Detection Fraud Tiger Team Integrated Workflow with Full Designer Support Fluent user friendly designer Fully integrated to transactional system Sub Flow Mechanism Auto Assigning based on rules Easily History Tracking Centralized Authorization System Every Window is a Resource Every Button is an Action Action Based Authorization Authorization For Workgroups, Roles and Users Resource | Channel Centralized Business Services BOA Container BOA Internet Hundreds of centralized business services flows through 18 Channels and 1100 Screens XTM EOD Deposite Internal Money Transfer Internet Branch Change Password Business Service Pool BOA Mobile Information Engine BOA COMMUNICATION E-MAIL SMS BOA Alert FAX INSTANCE BOA COMMUNICATION JOURNAL DEFINITION Third Parties and Other DBs E-MAIL QUEUE COEX E-MAIL QUEUE SMS QUEUE COEX SMS QUEUE FAX QUEUE COEX FAX QUEUE Rule Engine Framework embedded Tightly Coupled and Loosely Coupled rules No integration needed Can use BOA Kernel Libraries End-to-End Transaction Performance Metrics Any request-anywhere Durations Execution Tree Request content and Response content Performance HealthCheck Reports and Alerts Performance Report Screens Daily Emailed Performance Report Daily Emailed Consistency Report Daily Emailed Error Report Daily Emailed DB Error Report Daily Emailed Slowest Requests Report Kuveyt Turk Modules Important Figures Info Count # of Customers 1.959.996 # of Customer Accounts 4.609.206 # of Core Tables 1499 # of Core Stored Procedures 5914 # of Channels 18 # of Business Actions 6928 # of Resources (Screens) 2349 # of Daily Transaction Count ~1.500.000 # of Daily App. Server Hits ~9.000.000 # of Daily Slip Count 250.000~400.000 Filestream Technology Infrastructure for the New Generation Integrated Document Management System Reduced Costs and Better Performance Ensuring Transactional Integrity for Document Management Operations Integration with Transactional System Automated Business Activation No Blocking ! Loose Coupling and Workload Flexibility Related Message Locking Async Transactional Integrity SCENARIOS When money is deposited, update blockages Trigger external fund transfer without blocking Fraud controls Alternative to long running transactional database triggers Rich Device Integration Smatic – Ticket Machine (Numerator) iHunter (Cash Counter Machine) Camera Integration For Customer Photos XTM XTM Push/Pull Models for Deployment Flexible package deployment Per branch deployment Build&Deployment Automation Change Management Automation using BCP (Boa Change Protocol) Standards Ensured At Every Level Standard Solution Structure Standart Coding Blocks Standart Snippets Standart Stored Procedures Preset Project and Form Templates for Developer Project Templates Business Orchestration Types UI Form Templates Browse Form Transaction Form Transactional Browse Form BOA Code Metrics – Maintainability Index Halstead Volume (V)= N * log2 n N (Program Length) = Total # of Operators and Operands, n = unique # of operators and operands Project * Maintainability Cyclomatic Index Complexity BOA.Base 75 BOA.BusinessBus 78 BOA.Common 92 BOA.Common.Constant 95 BOA.Integration 83 BOA.Orchestration 66 BOA.Process 43 BOA.Proxy 80 BOA.ServiceBus 77 BOA.UI 82 BOA.UI.Business 93 BOA.UI.Business.Customer360 100 BOA.UI.Common 95 BOA.UI.Container 77 BOA.UI.Exceptions 95 BOA.UI.Resources 89 BOA.UI.Splash 100 BOA.WCFService 82 BusinessObjects\BOA.Business.Internal 57 BusinessObjects\BOA.Business.Kernel 56 BusinessObjects\BOA.Business.Security 56 207 1100 6954 16 39 1026 405 86 199 2117 1541 0 67 476 16 76 1 10 256 1155 107 Green (good) Yellow (so so) Red (bad) : 20 - 100 : 10 - 19 : 0 - 9 Depth of Class Lines of Code Inheritance Coupling 2 60 503 2 143 3778 6 357 8136 1 5 33 1 19 79 1 388 3361 1 83 1420 2 55 236 3 105 496 13 434 4505 11 365 3581 1 0 0 1 25 132 3 207 988 4 3 16 1 22 106 1 0 1 1 4 28 2 59 1862 2 191 6903 2 42 611 Munich Benchmark October 2009 8 Application Servers (Total 68 cores), 1 SQL Server (16 cores, 60 GB RAM) 2,950 Financial Transactions/sec 36,000 SQL Transactions/sec Avg. Response Time: 30 ms. Seattle Benchmark March 2010 49 Application Servers (552 Cores), 1 SQL Server (48 Cores, 128 GB RAM) 14,200 Financial Transactions/sec 102,000 SQL Transactions/sec Avg. Response Fime: 20 ms. World Record Adoption to ITIL V 3.0 Processes Synthetic Transactions Channel for Diagnostics and Monitoring Performance and Service Interruption Management Coexistance Methodology Immediate/Delayed Synchronization Both systems coexisting “Peacefully” Smooth Culture and Module Transitions Low burden on resources