Apache Tuscany Demo BigBank Example Mario Antollini mario.antollini@intel.com February 06, 2007
Demo Intention Introduction to the Bigbank example Backend Module Modules Overview Backend Module Front-end Module Live Demo Back-end Module Modified Interacting with External Service 11/28/2018
Apache Tuscany – BigBank Sample application using SCA, SDO's and DAS. Example description: BigBank is a fictitious financial institution that provides customers the ability to view account balances, transfer funds, and also buy and sell stocks. Two modules: Account Module for accessing client information in a legacy system Web Client Module providing browser-based functionality for logging into the system and accessing account information Composite Account Module (Java) Web Client Module Wiring Web Service Call 11/28/2018
Demo Intention Introduction to the Bigbank example Backend Module Modules Overview Backend Module Front-end Module Live Demo Back-end Module Modified Interacting with External Service 11/28/2018
BigBank – Account Module The Entry Point to the module is the Account Service It has two Components: Account Service Component: Provides an implementation of the Account Service. Furthermore, it has one property (currency), and two references, one to a local component called Account Data Service and other to a local service called Stock Quote Service Account Data Service Component: takes the role of legacy system; provides checking account, saving account and stock account information Service (WSDL interface Web Service binding) Every Web Service call to the Account Module will reach the Account Service Component Account Service Component (Java) Property (currency - String) Account Data Service Component (Java) Direct calls to Java classes Stock Quote Service Component (Java) Stock Quote Service (POJO component) DAS Communication SDO Mapping DataBase (Derby) D A S Account Module 11/28/2018
Account Module – SCDL File 11/28/2018
Demo Intention Introduction to the Bigbank example Backend Module Modules Overview Backend Module Front-end Module Live Demo Back-end Module Modified Interacting with External Service 11/28/2018
BigBank – Web Client Module The Web Client Module contains: The User Interface: a set of JSP, HTML and pure Java Servlet files (we could use JSF or Struts here) The Login Service Component and Profile Service Component: provide local services for managing user state The External Account Service, a Java class accessing the remote account service of the Account module. However, in the java class the calls are done to a Java Interface. At runtime, it will become a Web Services call. SCA runtime needs the Account Service WSDL file Login Service Component (Java) The Servlet obtains The Login Service Component Reference from the SCA context LoginServlet.java Property (name - string) Profile Service Component (Java) (firstname - string) Account Service Web Client Module User Interface Login.html Account Summary .jsp LoginBarrier Tag Service AccountService Reference to the External Account Module (WSDL interface - Web Service binding) 11/28/2018
Web Client Module – SCDL file 11/28/2018
Demo Intention Introduction to the Bigbank example Backend Module Modules Overview Backend Module Front-end Module Live Demo Back-end Module Modified Interacting with External Service 11/28/2018
Demo Intention Introduction to the Bigbank example Backend Module Modules Overview Backend Module Front-end Module Live Demo Back-end Module Modified Interacting with External Service 11/28/2018
BigBank - Account Module – External WS Now the Stock Quote Service Component calls to an external Web Service. Since binding is externally declared using XML, no code change in Account Service Component was required Account Service Component (Java) Every Web Service call to the Account Module will reach the Account Service Component Property (currency - String) Account Data Service Component (Java) Direct calls to Java classes Stock Quote Service Component (Java) Account Module Reference to the External Stock Quote Service (WSDL interface - Web Service binding) Stock Quote Service (External Service) Service (WSDL interface Web Service binding) 11/28/2018
Account Module – SCDL File for External WS All we need to do is changing the SCDL file and give Tuscany the external WSDL file. The SCA Runtime will do the ‘wiring’ 11/28/2018
Account Module – Stock Quote Service Reference Injection 11/28/2018
Demo Intention Introduction to the Bigbank example Backend Module Modules Overview Backend Module Front-end Module Live Demo Back-end Module Modified Interacting with External Service 11/28/2018
Backup 11/28/2018
Apache Tuscany - Lines of Code (Java) and Java Files, Java Version Module Lines of Code Including Black Lines and Comments Lines of Code Including Black Lines, Excluding Comments Java Files Complete Java module (sample apps, samples, testing, etc) 245.000 170.000 2.107 Data Access Service (DAS) Module 15.500 12.000 143 Service Component Architecture (SCA) Module 136.700 100.000 1.452 Service Data Object (SDO) Module 64.000 46.000 204 Spec 5.900 2.100 65 TOTAL 222.100 160.100 1.864 11/28/2018