The term "project architecture" would need to defined, in my opinion. A "project" does not have an "architecture." An information system has an architecture. An "enterprise" software application has an architecture, not a project however.
A project has a schedule, a budget, a scope, quality requirements, etc.
As indicated, software architectures are typically described via hardware/systems integration perspective, e.g. firewalls, security, routers, message queues, relational database management systems, etc.
JSP pages, servlets, XML, etc., are technologies used to build an "application." They are not part of an architecture. If your interviewer does not know this, then you may have difficulty in answering the question.
By project architecture, i guess the interviewer was referring to the application architecture which would be in most cases an MVC architecture if its a web application.
You started off well by explaining the different layer and the various technlogies used in every layer.You should have also explained little in-depth about the application functionality by mentioning the code flow.
For eg. Lets say your application requires user to login to access it.In that case, you can explain how the validation is being implemented in the application by explaining the code flow like from JSP/JSF --> managed bean --> service layer (Interface) --> Impl class --> then DAO layer --> Impl class and finally checking in your database and passing the result back to the presentation layer by wrapping the result in DTO.
Hope this helps !!
Joined: Apr 16, 2008
The "object-oriented design" of an application and the "architecture" of the hosting system typically are not the same. If you are working on a very small application, it may not have an "architecture" or may be trivial. Describing the OO design of the app then makes the most sense in this case. However, you should not try to disguise your response as an "architectural" design, but briefly explain that is a small application and this is how the app is structured.
I think what the interviewer meant was, describe the architecture used in your current or last project? This is a very common question to see how well you understand the bigger picture. If the question was not clearer, get it clarified before you go on to answer it. While answering, you could also query the interviewers as to you were on the right track.
-- You could talk about both physical and logical architectures.
-- Physical architecture is all about how many servers, load balanced, clustered, active-active versus active-passive, disaster recovery, etc. This includes the application servers, database servers, integration servers, etc.
-- Logical architecture is all about:
-- application/component A invoking application/component B using protocol X
-- Various tiers/layers of your application and how they interact with each other. For example, model, view, controller, data,
and integration tiers. Within tiers, you may have multiple layers like service layer, data access layer, etc.
-- Any batch processes.
-- Any integration with other systems, etc
Use simple box diagrams to give a bigger picture. You may also earn some brownie points by discussing not only the "how"s but also the "why"s.