Monday, May 13, 2013

Architect Points Java

A Technical Architect is an expert application developer, good analysts, designer, coder, and quality analyst. Technical architect designs solution not only considering functional requirement of an application but also the non functional requirements of it.
So what are questions do architect faces in an interview....
There is no standard set of questions, it driven by the interviewers who are evaluating the architect. These interviewers are from project teams working on specific customer requirement in same technology area. Hence question posed by interviewers are more towards technical challenges they faced are facing in their day to day activities. If you categories these questions, they can be correlated with standard generic questions.
What are standard architectural questions:-
  • Characteristics of a good architect design/ Consideration for designing a good application architecture
    • Should address functional requirements
    • Should address non functional requirements
    • Should address cross cutting concerns
  • Application Architecture layer - Key principles of Software Architecture
    • Layered Architecture: A decomposition of services such that most interactions occur only between neighboring layers.
    • Enterprise Process-Centric: A business process manages the interactions between multiple intra-enterprise applications, services, sub-processes and users. 
    • Component-Based Architecture -Decomposes application design into reusable functional or logical components that expose well-defined communication interfaces.
    • Service-Oriented Architecture (SOA) -applications that expose and consume functionality as a service using contracts and messages.
  • Non functional requirements of the application design- at-least highlight important ones
    • Scalability and capacity planning - considered for high user load
    • High Availability - downtime and uptime of system
    • Reliability and Usability -bug free system and easy to use
    • Maintainability and Extensibility - quality code, standard routines  and upgradable, new releases
    • Performance - Response, processing and tun around time of application
  • Cross cutting concerns of the application -some key concerns addressing
    • Transaction processing
    • Internationalization and localization which includes Language locale
    • Information security -authentication and authorizayion
    • Caching -local,server, network, database caching
    • Logging
    • Exception Management
  • UML Diagram and tools- key diagrams used by technical team
    • Diagram
      • Class diagram
      • Sequence diagram
      • Deployment diagram 
      • Use case diagram
    • Tools
      • Rational Architect
      • Argo UML (freebees)
      • Visual Paradigm
      • Star UML etcs
    • Reverse Engineering and code generation
  • J2EE Core Design Pattern -as per application layer
    • Presentation Tier
      • Intercepting Filter -intercepts incoming requests and outgoing responses and applies a filter.
      • Context Object-encapsulates state in a protocol-independent way to be shared throughout your application
      • Front Controller-a container to hold the common processing logic that occurs within the presentation tier
      • Application Controller -centralizes control, retrieval, and invocation of view and command processing
      • View Helper -encourages the separation of formatting-related code from other business logic
      • Composite View -suggests composing a View from numerous atomic pieces
      • Dispatcher View -defers business processing until view processing has been performed.
      • Service To Worker
    • Business Tier
      • Business Delegate -reduces coupling between remote tiers and provides an entry point for accessing remote services in the business tier.
      • Service Locator -encapsulates the implementation mechanisms for looking up business service components.
      • Session Facade -provides coarse-grained services to the clients by hiding the complexities of the business service interactions.
      • Application Service -centralizes and aggregates behavior to provide a uniform service layer to the business tier services.
      • Business Object -implements your conceptual domain model using an object model.
      • Composite Entity -implements a Business Object using local entity beans and POJOs.
      • Transfer Object -provides the best techniques and strategies to exchange data across tiers
      • T O Assembler -constructs a composite Transfer Object from various sources
      • Value List Handler -uses the GoF iterator pattern to provide query execution and processing services.
    • Integration Tier
      • Data Access Object -enables loose coupling between the business and resource tiers
      • Service Activator -enables asynchronous processing in your enterprise applications using JMS.
      • Domain Store -provides a powerful mechanism to implement transparent persistence for your object model.
      • Web Service Broker -exposes and brokers one or more services in your application to external clients as a web service using XML and standard web protocols
  • J2EE Application Design Pattern
    • Creational Patterns
      • Factory Pattern
      • Abstract Factory Pattern
      • Singleton Pattern
      • Builder Pattern
      • Prototype Pattern
    • Structural Patterns
      • Adapter Pattern
      • Bridge Pattern
      • Composite Pattern
      • Decorator Pattern
      • Facade Pattern
      • Flyweight Pattern
      • Proxy Pattern
    • Behavioral Patterns
      • Chain of Responsibility Pattern
      • Command Pattern
      • Interpreter Pattern
      • Iterator Pattern
      • Mediator Pattern
      • Momento Pattern
      • Observer Pattern
      • State Pattern
      • Strategy Pattern
      • Template Pattern
      • Visitor Pattern
  •  J2EE Application Development Framework
    • Spring 3.0
    • Jakarta Struts 2.0 -Servlet life cycle
    • EJB 3.0
    • JSF
    • JPA -Hibernate/ibatis
    • AJAX
    • GWT
    • JSON
    • FLEX -actionscript
  • J2EE Application Server - deployment and administration
    • Apache Tomcat
    • Websphere Application Server
    • JBOSS
    • WebLogic
  • Database Systems - SQL- complex queries -PL/SQL
    • Oracle 9i/10g/11g
    • SQL Server 2000/2005/2008
    • MySQL 5.5
  • Application build management
    • ANT - Build tools -build.xml/properties  MAVEN -pom.xml
    • HUDSON - continuous integration build server
  • Source Version controls - resolving conflict, branching,tagging
    • SVN
    • CVS
    • VSS
    • GIT
  • SOA -implementation and approach
  • JMS - MQ - MDB
    • Point-to-Point (Queue destination): In this model, a message is delivered from a producer to one consumer.
    • Publish/Subscribe (Topic destination): In this model, a message is delivered from a producer to any number of consumers. 
Some generic knowledge test questions
  • Java collection frameworks 
    • List, Set,Tree - 
      • synchronized collections
      • sorted collections
      • collections methods
    • use case for selecting one above other like arraylist over linkedlist (vector deprecated)
    •  Order of processing time -add, remove and search
    • sorting and searching techniques - Heap merge sort, b-tree search
  • Exception Handling in JAVA
    • compile time exception
    • run time exception
  • Questions related to OOPS
    • Abstraction
      • abstract class, method
    • Encapsulation
      • public,private,protected
    • Inheritance
      • extend
      • implements
    • Polymorphism
      • Overriding - method
      • Overloading -method,class
  • Questions related to multi-threading - synchronization, deadlock handling, runnable interface and thread class
  • stateless entity bean and stateful entity bean scalability?
  • Transaction isolation levels
    • none,repeated,read, read committed, read uncommitted, serializable
  • Transaction attributes
    • new, required,support,mandatory,never,not supported
  • Optimistic and pessimistic locking requirements
    • Optimistic is implicit time-stamp based
    • Pessimistic - explicit and client control
  • Use of custom classloader in application server- for hot deployment
  • design consideration and best practices for web services
  • Tools for monitoring code quality (PMD, find bug, checkstyle, -sonar)
  • many more....
Thanks for reading this, If you have any questions/concerns/suggestions/advise please do let me know.

No comments:

Post a Comment