This post covers Java architectural design patterns interview questions & answers with lots of diagrams. The depth of the answers you provide with diagrams and design alternatives will go a long way.
Q1. What are the different application integration styles?
A1. There are a number of different integration styles like
1. Shared database
2. batch file transfer
3. Invoking remote procedures (RPC)
4. Exchanging asynchronous messages over a message oriented middle-ware (MOM).
Q2. How does a Java EE application integrate with other systems?
A2. Using various protocols like HTTP(S), SOAP, RMI, FTP, TCP, proprietary, etc.
1) SOAP WS (Apache CXF) and RESTful(Apache CXF, RESTEasy, Jersey, etc) Web Service. RESTful Web Service is more prevalent.
2) Messaging with JMS. With JMS, you can switch from one JMS complian message broker (e.g. Web Methods) with another one (e.g. MQSeries or WebspehreMQ) with little or no changes to your source code.
3) JavaMail for sending emails and Simplewire Java SMS to send SMSs.
4) Overnight batch job runs to load data feeds with Spring batch or the new JEE batch jobs. These are ETL(Extract Transform and Load) tasks.
5) Using open source integration frameworks like Spring Integration or Apache Camel. This helps you integrate systems in a standardised way adhering to the enterprise integration patterns (EIP). Apache Camel is a light weight integration framework that allows you to use HTTP, FTP, JMS, EJB, JPA, RMI, JMS, JMX, LDAP, and Netty to name a few.
6) Using an ESB (Enterprise Service Bus) to integrate your applications. For example, Oracle Service Bus, TIBCO ESB, webMethods, Mule, etc. Under the hood, the ESB also uses an integration framework and provide more services and management functionalities like monitoring, high availability, clustering, graphical user inteface for routing and configuring, etc. Usually, an ESB is a complex and powerful product with a higher learning curve. Suited for very large integration projects. Projects requiring BPM (Business Process Managemnt) integration and other integrated services like monitoring, clustering, etc. Mule does provide proprietary connector support for systems like SAP, Tibco Rendevous, PayPal, Sibel CRM, IBM’s CICS, etc.
7) TCP based socket level integration. MINA is a popular framework for TCP based non blocking socket level communication. MINA is based on EDA (Event Driven Architecture). In EDA, Both the “Event” producers and listeners are loosely coupled via an “EventHub” and “Event”. An “EventHub” is used to register and unregister listeners.
8) Invoking remote procedures via RMI, Burlap, and Hessian. Burlap/Hessian remote objects are just ordinary Java objects that implement some interfaces. They don’t require special proxy, home, or remote classes. One of the inherent benefits of this object-and-interface model is that it promotes the good object-oriented design practice of design by interface.
9) FIX protocol to exchange financial information. FIX stands for Financial Information eXchange, which is an open protocol intended to streamline electronic communications in the financial securities industry. Most of the exchanges use this standard for communication like sending Order, Executions, MarketData, etc. QuickFIX/J and CameronFIX are popular FIX frameworks for Java.
10) Integration with data-warehouse systems for multi-dimensional reporting. OLTP (OnLine Transaction Processing) data is summarised and sent to OLAP (OnLine Analytical Processing) systems for business intelligence, data mining, and complex reporting. IBM Cognos, JasperSoft, Oracle Enterprise BI server, etc are OLAP systems.
11) Server side and client side mashups. Merging of services and content from multiple web sites in an integrated and coherent way is called a mashup.
A server-side mash-up integrates content in the server and pass it to the client. Hence this style of mash-up is also called a proxy-style mash up because the server acts as a proxy.
Q3. Can you discuss some of the high level architectures you are experienced with?
Q4. In your experience, what are some of the common architectural and development mistakes?
Q5. What causes performance issues in Java?
Q6. In your experience, what are some of the key security considerations in an enterprise Java application?
Q7. Can you list some key software design principles?
More white board session links
4) Know how to draw ERDs.
Top 5 Member Last 30 days
- ♦ Q11-Q23: Top 50+ Core on Java OOP Interview Questions & Answers 2,169 views
- ♦ 11 Spring boot interview questions & answers 1,958 views
- 03: ♦ 5 Java multithreading scenarios interview questions answered 1,658 views
- 18 Java scenarios based interview Questions and Answers 1,017 views
- 01: ♦ 15 Ice breaker questions asked 90% of the time in Java interviews 745 views
Latest posts by Arulkumaran Kumaraswamipillai (see all)
- Part 6: Intermediate What is wrong with this Java code? - March 20, 2017
- Q16-Q24 written test questions and answers on core Java - March 4, 2017
- 12: Q92 – Q97 Hadoop file formats and how to choose - March 3, 2017
- 18: Q104 – Q108 Scala typeclass pattern for decoupling with polymorphism - March 2, 2017
- 17: Q99 – Q103 Scala applicatives & scalaz interview Q&As - February 25, 2017