GPF Dev Weblogic Domain Structure epblnx50d AHCluster – 3GB gpfNode7gpfNode8 ENTCluster – 3GB gpfNode9gpfNode10 CSLCluster – 3GB gpfNode5gpfNode6 REFCluster.

Slides:



Advertisements
Similar presentations
AspectWerkz 2 - and the road to AspectJ 5 Jonas Bonér Senior Software Engineer BEA Systems.
Advertisements

5 Copyright © 2005, Oracle. All rights reserved. Accessing the Database with Servlets.
Design Validation CSCI 5801: Software Engineering.
AN INTRODUCTION TO PL/SQL Mehdi Azarmi 1. Introduction PL/SQL is Oracle's procedural language extension to SQL, the non-procedural relational database.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
An architecture for webb applications, J2EE
Next Generation Node (NGN) Technical Overview April 2007.
Exceptions in Java Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Processes and Resources
ASP.NET Programming with C# and SQL Server First Edition Chapter 8 Manipulating SQL Server Databases with ASP.NET.
M.Sc. Course, Dept. of Informatics and Telecommunications, University of Athens S.Hadjiefthymiades “Web Application Servers” Basics on WAS WAS are necessary.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Struts 2.0 an Overview ( )
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
1 INTRO TO BUSINESS COMPONENTS FOR JAVA (BC4J) Matt Fierst Computer Resource Team OracleWorld Session
Presented by, MySQL & O’Reilly Media, Inc. Data Services: Mashing and Shredding Data Using XAware.
Confidential Proprietary Click to edit Master text styles Second level Third level Fourth level Fifth level Software Architecture April-10 Click to edit.
CSCI 6962: Server-side Design and Programming JDBC Database Programming.
EJB. Component Characteristics An enterprise Bean typically contains business logic that operates on the enterprise’s data. An enterprise Bean’s instances.
思科网络技术学院理事会. 1 Application Layer Functionality and Protocols Network Fundamentals – Chapter 3.
Chapter 4: Core Web Technologies
Ing. Ignacio Roqueta ARTech GeneXus and J2EE.
Software Architecture for ColdFusion Developers Unit 4: Application Events and Global Variables.
Dynamic Data Exchanges with the Java Flow Processor Presenter: Scott Bowers Date: April 25, 2007.
— Build your own enterprise-class PaaS platform. Master Cloudset Cloudset1 Cloudset Resource Pool cloud Dedicated resource can be assigned to a cloudset.
ADO.NET A2 Teacher Up skilling LECTURE 3. What’s to come today? ADO.NET What is ADO.NET? ADO.NET Objects SqlConnection SqlCommand SqlDataReader DataSet.
Enterprise Java Bean Matt. 2 J2EE 3 J2EE Overview.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Message-Driven Beans and EJB Security Lesson 4B / Slide 1 of 37 J2EE Server Components Objectives In this lesson, you will learn about: Identify features.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
J2EE Structure & Definitions Catie Welsh CSE 432
Introduction to ESBs: Mule UC San Diego CSE 294 November 14, 2008 Barry Demchak.
CE Operating Systems Lecture 11 Windows – Object manager and process management.
Introduction to Exception Handling and Defensive Programming.
Enterprise JavaBeans Understanding EJB Components Version 0.1 Kamal Wickramanayake
Hibernate 3.0. What is Hibernate Hibernate is a free, open source Java package that makes it easy to work with relational databases. Hibernate makes it.
Creating competitive advantage Copyright © 2003 Enterprise Java Beans Presenter: Wickramanayake HMKSK Version:0.1 Last Updated:
Mike Jackson EPCC OGSA-DAI Architecture + Extensibility OGSA-DAI Tutorial GGF17, Tokyo.
CS 3830 Day 9 Introduction 1-1. Announcements r Quiz #2 this Friday r Demo prog1 and prog2 together starting this Wednesday 2: Application Layer 2.
TCP/IP (Transmission Control Protocol / Internet Protocol)
PROGRAMMING IN VISUAL BASIC.NET VISUAL BASIC PROGRAMMING FUNDAMENTALS Bilal Munir Mughal 1 Chapter-8.
INTEGRATION OF BACKBONE.JS WITH SPRING 3.1. Agenda New Features and Enhancements in Spring 3.1 What is Backbone.js and why I should use it Spring 3.1.
Configuring & Managing Web Services for Joachim Flammer Integration Team EGEE is a project funded by the European Union under contract IST
 Registry itself is easy and straightforward in implementation  The objects of registry are actually complicated to store and manage  Objects of Registry.
Jigsaw Performance Analysis Potential Bottlenecks.
Assignment of JAVA id : BSSE-F10-M-10-JAVA1 Overview of J2EE/Session 2/Slide 1 of 38.
1 Introduction to Servlets. Topics Web Applications and the Java Server. HTTP protocol. Servlets 2.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Data Access with Spring.
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Overview of the Spring Framework Introducing.
Module 6: Administering Reporting Services. Overview Server Administration Performance and Reliability Monitoring Database Administration Security Administration.
Spring JDBC Dima Ionut Daniel. Contents What is Spring JDBC? Overview Spring JDBC Core SQL Exceptions Database Connection Batch Operations Handling BLOB/CLOB.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Java Object-Relational Layer Sharon Diskin GUS 3.0 Workshop June 18-21, 2002.
17 Copyright © 2004, Oracle. All rights reserved. Integrating J2EE Components.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTERSTAGE BPM ARCHITECTURE BPMS.
Troubleshooting Workflow 8 Raymond Cruz, Software Support Engineer.
CS 440 Database Management Systems Stored procedures & OR mapping 1.
Configuring MQ Connections and Handlers for MQ adapter 6.5 July 2008.
CS 372 COMPUTER COMMUNICATION AND NETWORKS
Integration Framework of SAP Business One as Platform for Scenario Development January 2016 Public.
Exceptions, Interfaces & Generics
Developing and testing enterprise Java applications
J2EE Lecture 13: JMS and WebSocket
Enterprise Java Beans.
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
Java Object-Relational Layer
Presentation transcript:

GPF Dev Weblogic Domain Structure epblnx50d AHCluster – 3GB gpfNode7gpfNode8 ENTCluster – 3GB gpfNode9gpfNode10 CSLCluster – 3GB gpfNode5gpfNode6 REFCluster – 3GB gpfNode3gpfNode4 GPFCluster – 4GB gpfNode1gpfNode2 Admin Server SQL Server eqpfsqtpdv01.nam.nsroot.net:2431 AccountsDataSubLedgerInstrumentRefDataMarketData Sybase epbdb1d.ny.ssmb.com:4100 PBOnline Container-Level Data Sources AHDatasource SubLedgerFinderXADataSource SubLedgerXADatasource ReferenceDatasource MarketDatasource ProductProcessorDS epblnx51d 11 Processes needed for whole deployement.

AHFinderServiceImplAHFinderProxyImp AHDAOManager AHCacheAspect PfclientAcctDAO PffundAcctDAO PfsubAcctDAO PfgroupAcctDAO PfrefCodesAcctDAO …. 45 in total Database Save() Delete() Merge() attachClean() attachDirty() findById() …… Core Business Logic and Data Access Classes AHManagerServiceImplAHManagerProxyImpl clientAcctRegionfundAcctRegion subAcctRegiongroupAcctRegion

ESF (Enterprise Service Framework) Stack Container4.0.jar Esf_config.xml GPFServices.jar GPFServices Application Mule1.4.1.jar Container4.0.jar Esf_config.xml AHGui.jar AHGui Application Mule1.4.1.jar Axis:ServletAxis:JMS

Data Bus AHGUI AHFinderServiceFacade.execWSMethod() ESFClient.send() AH_esf_config_client.xmlESFAxisConnector AH DB GPFServices EMS Server

Common Accounts Getters PfAccount getCSLSubAccount() PfAccount[] getPfClientAccountsByAcronym() PfAccount[] getPfFundAccountsByAcronym() PfAccount[] getPfSubAccountsByProductProcessor() in total Pfgroup getPfGroupByPfGrpId() in total Abstract entities based only on cached data PfAccount getAccountHierarchyByPfId() ClientSummary[] getAllClientSummary() FundSummary[] getAllFundSummary() GroupSummary[] getAllGroupSummary() SubAcctSummary[] getAllSubAcctSummary() Data not cached by Gemfire PfacctAddress getPfacctAddress() PfacctAddress[] getPfacctAddresses() PfrefCodes[] getAllPfrefCodes() Pfexception[] getPfexceptions() True if specified entity exist in cache or DB Boolean isValidClientAcct() Boolean isValidFundAcct() Boolean isValidSubAcct() Boolean isValidSubAcctById() Boolean isValidSubAcctByRootIdAndPortfolioId() Clear caches and Reload From Database void refreshCache() Hibernate Save, children entities will also be saved. E.g. SubAcctEQRef PfAccount updateClientAccount(PfclientAcct clientAccount) PfAccount updateFundAccount(PffundAcct fundAccount) PfAccount updateSubAccount(PfsubAcct subAccounts) Hibernate Save, children entities will NOT be saved, e.g. childrenAccounts PfAccount updateAccount(PfAccount account) Pfgroup addGroup(Pfgroup pfgroup) Pfgroup updateGroup(Pfgroup pfgroup) Integer deleteGroup(Integer pfGrpId, Integer version) Changing Hierarchy Structure, ActionXXX stored procedures Handled PfAccount addClientAccount(AddClient addClient) Integer deleteClientAccount(DeleteClient deleteClient) PfAccount mergeClientAccount(MergeClient mergeClient) PfAccount addFundAccount(AddFund addFund) Integer deleteFundAccount(DeleteFund deleteFund) PfAccount mergeFundAccount(MergeFund mergeFund) PfAccount addSubAccount(AddSubAcct addSubAccount) Integer deleteSubAccount(DeleteSubAcct deleteSubAccount) PfAccount updateParentAccount(UpdateParent updateParent) Convert CITI data to PF data, UpdDDIXXX stored procedures handled PfAccount[] setPFFundAcctFromDDI(Integer citiId) PfAccount[] setPFSubAcctFromDDI(Integer citiId) Finder Service Functions Manager Service Functions

Cache Handling – CacheAspect Aspects Defined in AHServiceContext.xml Spring Advice Types Before advice: Executes before a method enters execution. After returning advice: Executed after a method completes normally. After throwing advice: Executed if a method exits by throwing an exception. After (finally) advice: Executed regardless of the means by which a method exits. Around advice: Perform custom behavior before and after the method invocation. Objective When reading data, use cache instead of database When writing data, update cache as necessary

public PfAccount getPfClientAcctByAcronymFromCache(ProceedingJoinPoint joinPoint) { try { Object[] args = joinPoint.getArgs(); PfAccount pfAccount = null; String queryString = "SELECT * FROM /root/ClientAccount r " + "WHERE r.pfclientAcct.pfClientAcronym = “ + "'" + args[0] + "'"; Query query = cacheManager.getQueryService().newQuery(queryString); SelectResults results = (SelectResults) query.execute(); Iterator iter = sr.iterator(); if (iter.hasNext()) { pfAccount = (PfAccount) iter.next(); } if (null == pfAccount) { pfAccount = (PfAccount) joinPoint.proceed(); if (pfAccount != null) { Region region = cacheManager.getRegion("root/ClientAccount"); region.put(pfAccount.getPfId(), pfAccount); AhEventPublisher ahEventPublisher = new AhEventPublisher(); ahEventPublisher.publish(pfAccount); ahEventPublisher.close(); } } else { pfAccount.setPfChildAccounts(new PfAccount[0]); pfAccount.setPfIndirectChildAccounts(new PfAccount[0]); } return pfAccount; } catch (Throwable t) { AHExceptionUtil.throwAHException(t); } Sample Read Data From Cache Gemfire query to find data, similar to Hibernate Publish cached data changes to JMS queue If no data found in cache, proceed to AHFinderService to try getting it from database Nullify children references to Shrink the size of return object

Mule Data Flow Supported Transports Axis BPM CXF EJB File FTP HTTP HTTPS IMAP JDBC Jetty JMS Multicast POP3 RMI Servlet SMTP SOAP STDIO TCP UDP VM WebSphere MQ XMPP

Challenges PfAccount PfClientAccountPfFundAccountPfSubAccount PfAccount SSL HandShaking Exception (certificate file) NoSuchElementException vo object unmatched) Update function doesnot return updated result PfGroup AHGUI Data & Function

ESF Service Config Elements Connectors Esf : JmsConnector Esf : AxisConnector Mule : VMConnector Interceptor-Stack Esf : LoggingInterceptor Esf : TimerInterceptor Esf_config_deploy.xml Transformers mule : ObjectToXML mule : JMSMessageToObject mule : ObjectToJMSMessage Mule : ByteArrayToSerializable Ah : AHTransformer Services Ah : AHFinderService inbound : axis:servlet://AHFinderService inbound : axis:jms://gpf_ AHFinderService.request Ah : AHManagerService inbound : axis:servlet://AHManagerService inbound : axis:jms://gpf_ AHManagerService.request Mule : BridgeComponent inbound : vm://ahJmsProxy outbound : axis:jms://gpf_ Equity.AHNotificationReceiver.request?method=receiveAHEvent outbound : axis:jms://gpf_ IPB.AHNotificationReceiver.request?method=receiveAHEvent Exception Strategy AHDefaultConnectorExceptionStrategy Profiles Threading Profile Pooling Profile Queue Profile

ESF Service Config Structure <property name="allowedMethods" value="getVersionResult,getPfClientAccounts,getPfFundAccounts,getPfSubAccounts,,getAllSubAcctSummary..." />

AHService Config Files Overview

Utility Classes UIDGenerator – A 24 character-length unique string generator, based on System.currentTimeMillis(), host IP address, and java.security.SecureRandom(“SHA1PRN”). It’s used by AHEventPublished to assign event id. Also used by AhJmsTopicMsgPublisher to set service call id. AHSizeAgent – Make rough calculation of memory consumption size for those stored in cache. Was used by AHCacheAspect getAccountsFromCache(), getAccountHierarchyByID(). Not in use right now. AHContextListener – Registered in web.xml as a listener class. Upon context initilization being finished, it calls AHStartupLoader to load data from database into cach. It also pass the ESF config file to ESFXMLConfigurationBuilder to initilize the ESF framework components. AHDefaultConnectorExceptionStrategy – An extension class to org.mule.impl.DefaultExceptionStrategy, in its defaultHandler(Throwable t) method, it simply output the error message via Log4J, its declared as the exception strategy for JMS connection in esf_config_deploy.xml AHEventPublisher – It’s frequently used AHCacheAspect during most cache data change situations. The method publish(Serializable) convert a cached object (e.g. PfClientAcct) into AHEvent object. The AHEvent object is then dispatched through ESFClient to “vm://ahJmsProxy”. A BridgeComponent declared in esf_config_deploy.xml then resend it to citi.eqpb.ny.pbapps.gpf_ Equity.AHNotificationReceiver via Axis JMS channel

The Others Performance Most functions running 2-3 times longer than typical hibernate implementation If service guanrentees that data consistency between Gemfire cache and database why should we get the data from service? Function Flexibility What if we only want part of the result object? What if we need complex searching logic? Data Integrity Does the service always know what’s been changed? Are the interfaces thread safe? Maintain Effort Why so many files need to be changed when we only want to add a single attribute to vo object? Be able to run it in local, for easier coding and debug.