Merge pull request #98 from lukaszlenart/architects-guide

Architects guide
diff --git a/pom.xml b/pom.xml
index 06ca431..1984c3a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -94,14 +94,14 @@
                                         <argument>-a</argument>
                                         <argument>${project.build.directory}/md/attachments</argument>
                                         <argument>-o</argument>
-                                        <argument>${project.build.directory}/md/architects-guide.md</argument>
+                                        <argument>${project.build.directory}/md/big-picture.md</argument>
                                         <argument>-u</argument>
                                         <argument>${confluence.user}:${confluence.password}</argument>
                                         <argument>-server</argument>
                                         <argument>https://cwiki.apache.org/confluence</argument>
                                         <argument>+gfm</argument>
                                         <argument>true</argument>
-                                        <argument>45478</argument>
+                                        <argument>13859</argument>
                                     </arguments>
                                 </configuration>
                             </execution>
diff --git a/source/core-developers/attachments/Struts2-Architecture.png b/source/core-developers/attachments/Struts2-Architecture.png
new file mode 100644
index 0000000..dc4d5dd
--- /dev/null
+++ b/source/core-developers/attachments/Struts2-Architecture.png
Binary files differ
diff --git a/source/core-developers/big-picture.md b/source/core-developers/big-picture.md
new file mode 100644
index 0000000..fe5257b
--- /dev/null
+++ b/source/core-developers/big-picture.md
@@ -0,0 +1,38 @@
+---
+layout: core-developers
+title: Big Picture
+---
+
+# Big Picture
+
+The diagram describes the framework's architecture.
+
+![Struts2-Architecture.png](attachments/Struts2-Architecture.png)
+
+In the diagram, an initial request goes to the Servlet container (such as Jetty or Resin) which is passed through 
+a standard filter chain. The chain includes the (optional) **ActionContextCleanUp** filter, which is useful when 
+integrating technologies such as _SiteMesh Plugin_ . Next, the required **FilterDispatcher** is called, which in turn 
+consults the [ActionMapper](action-mapper) to determine if the request should invoke an action.
+
+If the ActionMapper determines that an Action should be invoked, the FilterDispatcher delegates control 
+to the **ActionProxy**.  The ActionProxy consults the framework [Configuration Files](configuration-files) manager 
+(initialized from the [struts.xml](struts-xml) file). Next, the ActionProxy creates an **ActionInvocation**, which is 
+responsible for the command pattern implementation. This includes invoking any **Interceptors** (the [before](before-annotation) 
+clause) in advance of invoking the **Action** itself.
+
+Once the Action returns, the ActionInvocation is responsible for looking up the proper **result** associated 
+with the **Action result code** mapped in `struts.xml`.
+
+The result is then executed, which often (but not always, as is the case for [Action Chaining](action-chaining)) 
+involves a template written in [JSP](../tag-developers/jsp) or [FreeMarker](../tag-developers/freemarker) to be rendered. 
+While rendering, the templates can use the [Struts Tags](../tag-developers/struts-tags) provided by the framework. 
+Some of those components will work with the ActionMapper to render proper URLs for additional requests.
+
+
+> All objects in this architecture (Actions, [Results](result-types), [Interceptors](interceptors), and so forth) are 
+> created by an [ObjectFactory](object-factory). This ObjectFactory is pluggable. We can provide our own ObjectFactory 
+> for any reason that requires knowing when objects in the framework are created. A popular ObjectFactory implementation 
+> uses Spring as provided by the [Spring Plugin](../plugins/).
+
+Interceptors are executed again (in reverse order, calling the [after](after-annotation) clause). Finally, the response 
+returns through the filters configured in the web.xml.
diff --git a/source/core-developers/index.md b/source/core-developers/index.md
index ad24dd1..6a8c396 100644
--- a/source/core-developers/index.md
+++ b/source/core-developers/index.md
@@ -59,8 +59,11 @@
   - [Configuration/Documentation] - export https://cwiki.apache.org/confluence/display/WW/Portlet+Plugin
 - [Logging](logging.html)
 - [Accessing application, session, request objects](accessing-application-session-request-objects.html)
-- [Action Mapper](action-mapper.html)
-- [Action Proxy & ActionProxy Factory](action-proxy-and-actionproxy-factory.html)
+- [Big Picture](big-picture)
+    - [ObjectFactory](object-factory)
+    - [Action Mapper](action-mapper.html)
+    - [Action Proxy & ActionProxy Factory](action-proxy-and-actionproxy-factory.html)
+    - [Configuration Provider & Configuration](configuration-provider-and-configuration)
 - [FAQs](../faq/)
   - [Struts 2 Maven Archetypes](../maven-archetypes/)
   - [Cookbook]