Prep Up for AEM 6 Architect Certification (9A0-385) Exam

1

Are you ready to take the next step to advance your career? Or, unsure and just exploring what it would take to pass the coveted Adobe Experience Manager (AEM) Architect Certification exam? You have found the right article!

DISCLAIMER: This article reflects my own personal journey to passing the exam. It consists of materials and knowledge I gathered from various websites, official and unofficial. Therefore, this is not a guarantee of passing the exam nor can I guarantee the accuracy. So please do your due diligence and study the official documentations from Adobe and consult with your AEM professionals. If there is any discrepancies or inaccuracies, I’d really appreciate it if you let me know. :-)

I’ve been using AEM for a number of years, since the good old days when it was known as Communiqué (CQ). Ever since then, Adobe has successfully transitioned CQ over to AEM world. They didn’t stop there but making AEM the heart that ties their impressive collection of digital marketing product offerings, including the immediate siblings that take advantage of AEM platform like AEM Forms, AEM Assets, AEM Communities, AEM Mobile, to its cousins that have tight integration with AEM platform such as Adobe Analytics, Adobe Target, Adobe Audience, Adobe Campaign, and finally with the broader family like Adobe Primetime, Adobe Media Optimizer, and Adobe Social, to achieve the delivery of Adobe Experience Platform that is data-driven, real-time, open and extensible, and that has high time-to-value. These advancements make becoming a certified Adobe Experience Manager Architect all the more compelling.

adobe-experience-platform-customer-experience-ecosystem-chart

Besides advancing your career, another great benefit to getting certified is to be able to study the subject in a constructive way, covering many corners, that, otherwise, one would not have. One great advantage I had passing the certification was that, at the time of writing this article, Adobe offered a limited Buy One and Get One Free.

adobe-certified-exam-bogo-take-two-or-redo-2017

The exam consists of:

  • Number of questions: 63
  • Time limit: 90 minutes
  • Passing score: 71%
  • Exam cost: $180 (US Dollars)

If you fail the first time, you will have to wait 14 days until you can schedule another exam. Though, on my second take, I noticed that there were only 50 questions with 58% passing score, which made the exam much easier (or harder?). So I definitely urge you to not get discouraged if you fail. It also took me two takes to pass the exam but it was well worth the time and effort, since those 14 days gave me a great chance to learn up so much more about AEM broadly than my job allowed.

To get started on the exam preparation, if you haven’t already, review the official AEM exam guide. Using the topic areas laid out in the PDF as the guide, you should go through the AEM online documentation and jot down any knowledge and areas that you feel weak. Below is my take on this approach, plus the learnings I had from my two exams. Good luck!

Discovering existing environments and business processes (9%)

  • I can review client systems in which AEM will be integrated
    • Infrastructure (OS, Network, Storage, Backup, Cloud, Disaster Recovery)
    • Authentication (LDAP, SSO)
    • Dev/Stage/UAT/PROD Environment
    • Content (CMS, DAM)
  • I can review 3rd-party software services in which AEM will be integrated
    • Campaign / Email / Mobile / Social
    • Audience / A/B testing / Personalization / Offers
    • Analytics / Predictive Intelligence / Big Data
    • Communities
    • Amazon Web Services/Google Cloud
  • I can analyze business processes and workflows
    • Map business processes in flow chart
  • I can lead the design of workflow models for business processes

Discovering client expectations (8%)

  • I can analyze business requirements
  • I can interpret short-term and long-term client needs
    • Short-term – Immediate needs such as launching of the website
    • Long-term – Planning of expansion of capabilities, scalability to meet long-term company goals

Validating business requirements (4%)

  • I can document which business requirements map to AEM out-of-box functionality
    • AEM Out-of-box Functionality
    • AEM Sites – Templates, Components, Search, Tagging, Mobile Apps, eCommerce, Personalization
    • https://docs.adobe.com/docs/en/aem/6-1/author/page-authoring/default-components/components.html
    • Core Components: Page, Breadcrumb, Title, Text, Image, Text and Image, List, Sharing (FB/Pinterest), Flash, Carousel, Chart, Login, Search, Table, Tag Cloud, Text and Image, Video
    • Form Components: Form Container, Text, Image Button, Link Field, Password Field, Password Reset, Checkbox Group, Radio Group, Hidden, Button, Captcha, File Upload, Image Upload, Tags Field, Submit Button, Workflow Submit
    • Columns: 2 Columns, 3 Columns, Column control
    • Tagging – Global, used in search
    • AEM Assets, AEM Forms, AEM Mobile, AEM Communities, AEM Livefyre
  • I can determine which storage type to use based on non-functional business requirements
    • TarMK vs MongoMK
      • Use external datastore like Amazon S3 when there is a large number of binaries
      • TarMK is 50% faster than MongoMK
      • TarMK is file based and persists on each server and a must for Publish environment.
      • TarMK with user authentication – Use Encapsulated Token so that authentication persists horizontally without additional data sync.
      • MongoMK is MongoDB based and recommended for Authoring to provide fail-safe and scalability
      • For storing UGC content, use Adobe Social (ASRP – Adobe Storage Resource Provider), MongoDB (MSRP), or JSRP (available to that specific Publish instance and not across the farm)
    • Data Store
      • https://docs.adobe.com/docs/en/aem/6-2/deploy/platform/data-store-config.html
      • Adobe recommends using external datastore when there is a large number of binaries.
      • In AEM 6, binary data can be stored independently from content nodes. Location where binary data is stored is referred as Data Store, while the location where the content nodes is stored is referred as Node Store.
      • Amazon S3 can be used as the Data Store.
    • SegmentStore vs DocumentStore
      • http://www.aembeginner.com/aem-6-3-amazon-s3-data-store-vs-file-data-store/
      • SegmentStore and DocumentStore are both for binary data store to hold larger digital assets to maximize application performance.
      • SegmentStore is how TarMK stores both binary and content nodes and located as a physical folder within AEM directory structure (install-folder/crx-quickstart/repository/segmentstore)
      • DocumentStore is for MongoMK
      • Starting AEM 6.3, you can define “common data store” across author and publisher so that you don’t need to replicate large binary files from author to publish. There are two types of data store:
        • Amazon S3 Data Store
        • File Data Store (SAN/NAS)
  • Storage Resource Provider
    • https://docs.adobe.com/docs/en/aem/6-1/develop/communities/scf/srp.html
    • As of AEM Communities 6.1, community content, commonly referred to as user generated content (UGC), is stored in a single, common store provided by a storage resource provider (SRP).
    • ASRP – Adobe Storage Resource Provider. Stored in a cloud service hosted and managed by Adobe.  UGC stored in ASRP may neither be viewed with CRXDE Lite nor accessed using the JCR API. ASRP uses Adobe cloud for queries.
    • MSRP – MongoDB Storage Resource Provider. Stored in MongoDB.  UGC stored in MSRP may neither be viewed with CRXDE Lite nor accessed using the JCR API. While MSRP is comparable to ASRP, as all AEM server instances are accessing the same UGC, it is possible to use common tools to directly access the UGC stored in MongoDB. MSRP uses Solr for queries.
    • JSRP – JCR Storage Resource Provider. JSRP is the default provider for accessing all UGC on a single AEM instance.  It provides the ability to quickly experience AEM Communities 6.1 without the need for setting up MSRP or ASRP. Accessible via both CRXDE Lite and JCR API, it is strongly recommended that JCR API never be used to do so, else future changes may affect custom code. Further, the repository for the author and publish environments is not shared.  While a cluster of publish instances results in a shared publish repository, UGC entered on publish will not be visible on author, hence no ability to manage UGC from author.  UGC is only persisted in the AEM repository (JCR) of the instance on which it was entered. JSRP uses the Oak indices for queries. This could further be complicated in a Farm configuration and therefore not recommended for a Farm environment.

Designing a solution architecture (2%)

  • I can modify customer technical requirement definitions based on project progress
    • Architect solution based on budget and time constraints

Identifying components and templates for web pages (9%)

  • I can review all pages that are needed on a website
    • Homepage, Product page, Listing page, Detail page, Campaign Landing Page, Brand Landing Page, Search, Help, Shopping cart, Login/Registration page, Checkout
  • I can categorize web pages
    • Templates, Folder Structure, Tagging taxonomy
  • I can design templates for categories
    • Pages that are often needed to be created in the same format: News, Article, Blog, Product Detail, Landing Page, Home page
    • How many templates are needed when there are 5 regional websites with different languages but each regional website uses region specific component
    • https://adobeaemtherightway.wordpress.com/2014/04/08/how-to-reduce-the-number-of-templates-in-your-adobe-aem-project/
    • Five, ten, one, two? One, since each template header/footer components can be driven by i18n or lauguage dictionary, and each page generated from template can have additional content without breaking the livecopy.
  • I can define (create specifications for) custom components that support a template
    • Dialogs, data to be stored, multifield, livecopy, internationalization
  • I can define a content model for content/assets that can accommodate future requirements
    • Content/Folder/URL structure, Tagging structure, Multi Site Manager, Blueprint, Livecopy, Translation Service Providers, Internationalization (i18n), Translator (translation dictionaries).
    • David’s Model: A guide for content modeling
      • https://docs.adobe.com/docs/en/aem/6-1/develop/the-basics/model-data.html
      • Rule #1: Data First, Structure Later. Maybe.
      • Rule #2: Drive the content hierarchy, don’t let it happen.
      • Rule #3: Workspaces are for clone(), merge() and update().
      • Rule #4: Beware of Same Name Siblings.
      • Rule #5: References considered harmful.
      • Rule #6: Files are Files.
      • Rule #7: ID’s are evil.
  • I can identify when to use OSGi bundles/services and tag libraries
    • OSGi Component – @Component – Ability to start, stop and configure the component using the felix web console.
    • OSGi Service – @Service – OSGi Component can be marked as Service. When you mark a component as service, you could refer (call) this service from other osgi components.
    • Granite Tag Library
      • <%@include file=”/libs/granite/ui/global.jsp”%>
      • <ui:includeClientLib> tag includes a AEM html client library, which can be a js, a css, or a theme library.
    • Sling library – <%@taglib prefix=”sling” uri=”http://sling.apache.org/taglibs/sling” %>
      • <sling:include> tag includes a resource into the current page
      • <sling:defineObjects> tag exposes the following, regularly used, scripting objects which can be referenced by the developer
        • slingRequest, slingResponse, resourceResolver, .sling, resource, currentNode, log, requestName, responseName, nodeName, logName, resourceResolverName, slingName
    • CQ Tag Library – <%@taglib prefix=”cq” uri=”http://www.day.com/taglibs/cq/1.0″ %>
      • <cq:defineObjects> tag exposes the following, regularly used, scripting objects which can be referenced by the developer such as componentContext, component, currentDesign, currentPage, currentStyle, designer, editContext, pageManager, pageProperties, properties, resourceDesign, resourcePage, requestName, responseName, resourceName, nodeName, logName, resourceResolverName, slingName, componentContextName, editContextName, propertiesName, pageManagerName, currentPageName, resourcePageName, pagePropertiesName, componentName, designerName, currentDesignName, resourceDesignName, currentStyleName
      • <cq:text> tag is a convenience tag that outputs component text in a JSP.
      • <cq:setContentBundle> tag creates an i18n localization context and stores it in the javax.servlet.jsp.jstl.fmt.localizationContext configuration variable
      • <cq:include> tag includes a resource into the current page.
      • <cq:includeClientLib> tag Includes a AEM html client library, which can be a js, a css or a theme library.
      • <cq:requestURL> tag writes the current request URL to the JspWriter
      • <cq:addParam> tag adds a request parameter with the given name and value to the enclosing <cq:requestURL> tag.
      • <cq:removeParam> tag removes a request parameter with the given name and value from the enclosing <cq:requestURL> tag
    • JavaServer Pages Standard Tag Library – JSTL Tag Library
      • <%@taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %>
      • <%@taglib prefix=”fmt” uri=”http://java.sun.com/jsp/jstl/fmt” %>
      • <%@taglib prefix=”fn” uri=”http://java.sun.com/jsp/jstl/functions” %>
    • POST.jsp

Creating migration strategies (8%)

  • I can map attributes from and AS-IS content structure to a TO-BE content structure
  • I can document the migration path for content from AS-IS to TO-BE
  • I can plan the execution of migration strategies
  • I can determine the feasibility of automatic and manual migration strategies

Identifying and recommending performance requirements (10%)

  • I can collect customer historical performance metrics and documenting performance acceptance criteria/performance KPIs (getting from the client)
  • I can document best practices for performance requirements
    • https://helpx.adobe.com/experience-manager/kb/performance-tuning-tips.html
    • Enable transient workflows to speed up up to 10% workflow processing (especially for DAM Asset Update)
    • Tuning Sling Job Queues – Running intensive workflows like bulk upload of large assets is typically a very resource intensive process.
    • Set queue.maxparallel to a value that represents 50% of the CPU cores of the server that hosts your AEM instance. For example, for 8 CPU cores, set the value to 4.
    • Replication queue – http://localhost:4502/etc/replication/agents.author.html
    • Tuning your Oak Repository – Oak Query Engine/Index optimizations
      • Install recommended indexes (only for AEM 6.0)
      • Create custom oak indexes for all frequently used search queries.
    • JVM parameters – Add these JVM parameters in the AEM start script to prevent expansive queries from overloading the systems.
      • -Doak.queryLimitInMemory=500000 (see also Oak documentation)
      • -Doak.queryLimitReads=100000 (see also Oak documentation)
      • -Dupdate.limit=250000 (only for DocumentNodeStore, eg. MongoMK, RDBMK)
      • -Doak.fastQuerySize=true (see also Result Size in Oak documentation)
    • Lucene index configuration
      • Open /system/console/configMgr/org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService and

        enable CopyOnRead (enabled by default since AEM 6.2)

      • Enable CopyOnWrite (enabled by default since AEM 6.2)
      • Enable Prefetch Index Files (enabled by default since AEM 6.2)
    • Data Store
      • When using a FileDataStore, tune cacheSizeInMB to a percentage of your available heap. A conservative value is 2% of the max heap.  For example, for an 8 GB heap:

        • maxCachedBinarySize=1048576
        • cacheSizeInMB=164
      • Note that maxCachedBinarySize is set to 1 MB (1048576). As such, it only caches files that are a maximum of 1 MB.  Tuning this setting to a smaller value may also make sense.
      • When dealing with a large number of binaries, you want to maximize performance. Therefore, Adobe recommends that an external datastore is used instead of the default node stores. In addition, Adobe recommends you tune the following parameters:
        • maxCachedBinarySize=10485760
        • cacheSizeInMB=4096
      • TarMK online compaction – Adobe recommends that you use offline compaction, by way of the oak-run tool
    • Scalability
      • Apache Jackrabbit Oak – completely rewritten from ground up with support of current JCR API
      • TarMK – Local Tar file system. Both binaries and files all stored in the same Tar files. Provides high performance with minimal operational overhead.
      • MongoMK – MongoDB NoSQL based. Single MongoDB can support more than 5 Author AEM instances.
        • The solution for horizontally scale Author instance where there are thousands of authors, hundreds of concurrent authors, hundreds of thousands of assets ingested per day, hundreds of thousands of page modifications per day, tens of thousands of searches per day.
      • Use of MongoMK for Publish is not recommended but only for some UGC content/community scenarios.

Identifying and recommending a security model (8%)

  • I can identify client security requirements
    • Authentication, two-factor authentication, SAML, LDAP, SSO, OAuth, custom database
    • Authorization, permission, roles, groups, users
    • Dispatcher rules
    • Firewall rules
  • I can create a security concept for an AEM installation (Users, Groups, ACLs, Dispatcher rules, OS-based security)
    • dispatcher.any
      •      /statfileslevel “2″     # invalidation at the tree level after activation.
      •      # 0 = root (/), 1 = content (/content), 2 = site folder level (/content/geomatrixx)
      •      /rules     # determine what to allow/deny for caching
      •      {
      •         /0000
      •         {
      •            # the globbing pattern to be compared against the url
      •            # example: *             -> everything
      •            #        : /foo/bar.*    -> only the /foo/bar documents
      •            #        : /foo/bar/*    -> all pages below /foo/bar
      •            #        : /foo/bar[./]* -> all pages below and /foo/bar itself
      •            #        : *.html        -> all .html files
      •            /glob “*”
      •            /type “deny” # allow – for caching, deny – for no caching
      •         }
      •      }
      •      /invalidate     # types of file to invalidate after activation
      •      {
      •         /0000
      •         {
      •            /glob “*”
      •            /type “deny”
      •         }
      •         /0001
      •         {
      •            # Consider all HTML files stale after an activation.
      •            /glob “*.html”
      •            /type “allow”
      •         }
      •      }
      •      /filter     # allow/deny url patterns to access Publish to fetch pages
      •      {
      •          # deny everything and allow specific entries
      •          /0001 { /type “deny”  /glob “*” }
      •          /0023 { /type “allow” /glob “* /content*” }  # disable this rule to allow mapped content only
      •      }
      •      /allowedClients     # defines clients allowed to flush the cache
      •      # The globbing patterns are matched against the IP.
      •      {
      •         # The globbing patterns are matched against the IP.
      •         /0001 { /glob “*.*.*.*”  /type “deny” }
      •         /0002 { /glob “127.0.0.1″ /type “allow” }
      •      }
    • CUG – Closed User Group
    • Page Permissions are not replicated on user activation. It’s not possible to replicate ACLs anymore. This is done purposefully since permissions between two environments should be different.

Identifying quality assurance requirements and planning the QA process (11%)

  • I can plan QA phases based on customer requirements
  • I can identify key areas to focus on QA
  • I can identify target metrics for QA phases
  • I can plan infrastructure requirements to accommodate QA activities
  • I can automate the QA process
  • I can integrate QA into the change management process

Integrating with third-party systems (9%)

  • I can integrate an AEM solution with standard 3rd-party systems (Standard 3rd-party systems include LDAP, general SSO solutions, e-commerce)
    • LDAP Setup – https://docs.adobe.com/docs/en/aem/6-1/administer/security/ldap-config.html
      • Authentication Provider
    • SAML Setup – https://vikastechblog.com/aem/saml.html
      • SSO Provider via IDP
    • Authenticating to external database
      • http://jackrabbit.apache.org/oak/docs/security/authentication/externalloginmodule.html
      • External Login Module  provides connection between JAAS login mechanism, the external identity provider and the synchronization handler.
      • In order to implement External Login Module, you need to have External Identity Provider (IDP) interface, which is responsible for retrieving and authenticating identities towards an external system (e.g. LDAP)
      • Finally, the SyncHandler interface is used to actually managing the external identities within the Oak user management. A very trivial implementation might just create users and groups for external ones on demand.
      • LDAP/SAML integration comes out of box via Apache Jackrabbit Oak LDAP Identity Provider and Adobe Granite SAML 2.0 Authentication Handler
      • Custom External Login Module – https://helpx.adobe.com/experience-manager/using/oak-login.html
        • After deploying this, check Apache Jackrabbit Oak Custom External Login Module and make sure Factory PID represents your custom Factory class.
    • SlingRepository.loginService
      • https://docs.adobe.com/docs/en/aem/6-2/administer/security/service-users.html
      • This method replaces SlingRepository.loginAdministrative, which was the main way of getting an administrative session to do service tasks which allowed too much broad access to all JCR repository.
      • Instead, starting AEM 6.1, it allows creation of Service User and define minimum privilege/access, which does not have password, therefore, cannot be used for login but allows you to map this service user to an OSGi bundle/service.
      • Returns a session with the privileges of the configured service user only.
      • JSPs cannot use loginService(), because there is no associated service. However, administrative sessions in JSPs are usually a sign of a violation of the MVC paradigm.
      • If you need to access an admin session, this would be done by creating a service user, assign all privilege for all repository, and assign the service user to the service it is supposed to be running for.
      • https://helpx.adobe.com/experience-manager/using/jqom.html
    • Two factor authentication
    • eCommerce, what are possible/provided in AEM and what needs to be depended on eCommerce engine
  • I can integrate an AEM solution with non-standard 3rd-party systems (Non-standard 3rd-party systems include customer database, event management system, product configurators)
  • I can define analytics tagging architecture for customer websites

Managing the content editing process (13%)

  • I can identify gaps between required features and out-of-the-box features
  • I can ensure that requirements are met by driving the User Acceptance Testing (UAT) process, and identify usability issues
  • I can clarify the process of initial filling of content (For example: sequential delivery enabling to start with partially finished system)
    • What contents or components and testing are required for go-live when time is running out.
  • I can document the translation process and driving verification by end users
    • https://docs.adobe.com/docs/en/aem/6-3/administer/sites/translation/tc-bp.html
    • Translation Project
      • Integration with Translation Service Provider – https://www.youtube.com/watch?v=Sii1bZ2G-Aw
      • The AEM Translation Framework supports integration with a variety of translation technology providers for both machine and human translation.
      • Human translation is best-suited for content where messaging and quality expectations are high and the content will live for some time on the site, such as  Marketing pages.
      • Machine translation can be a good choice for mass volumes of translation when time to publish is critical, quality expectations are relaxed, or human translation costs are prohibitive. Support knowledge base and user generated content are commonly machine-translated.
  • I can define and verify rollout processes (e.g. MSM) and clarify constraints
    • MSM – Multi Site Manager and LiveCopy
      • https://docs.adobe.com/docs/en/aem/6-3/administer/sites/msm.html
      • Multi Site Manager (MSM) enables you to use the same site content in multiple locations. MSM uses its Live Copy functionality to achieve this. MSM does not translate the content. It is used to create the required structure and deploy the content.
      • Scenarios: Multinationals – Global to Local Company (country), National – Head-Office to Regional Branches (dealership), Multiple Versions
      • Create Blueprint via MSM Control Center – http://localhost:4502/miscadmin#/etc/blueprints
      • On Siteadmin, at the root, create New Site – http://localhost:4502/siteadmin
      • The newly created site/page will have little arrow icon to show that it is a livecopy
      • On the source page, after editing, use rollout workflow specified from blueprint config and it will make a copy.
      • A rollout is the central MSM action that synchronizes live copies with their source.
      • A rollout configuration can be defined so that specific events can cause a rollout to occur automatically.
      • When authoring a blueprint page you can use the Rollout command to push changes to the live copy.
      • The Rollout command is available on a blueprint page that is referenced by a blueprint configuration.
      • When authoring a live copy page you can use the Synchronize command to pull changes from the source to the live copy.
      • Trigger – A trigger is an event that causes the live action synchronization to occur, such as the activation of a source page. MSM defines the triggers that you can use.
      • Synchronization actions – Are performed on the live copy to synchronize it with the source. Example actions are copying content, ordering child nodes, and activating the live copy page. MSM provides a number of synchronization actions.
      • Rollout configurations can be re-used, so that more than one live copy can use the same rollout configuration. Several rollout configurations are included in a standard installation.
      • Detach permanently removes the live relationship between a live copy and its blueprint page. All MSM-relevant properties are removed from the live copy and the live copy pages become a standalone copy.
      • Add components to a live copy page at any time. The inheritance status of the live copy and its paragraph system does not control your ability to add components. When the live copy page is synchronized with the source page, the added components remain unchanged.
      • The order of components in an inherited paragraph system can be modified, even with inheritance established.
      • On rollout, the order of the components will be restored from the blueprint. if new components were added to the live copy before rollout, they will be reordered along with the components above which they were added.
      • If inheritance of the paragraph system is cancelled, the order of components will not be restored on rollout and will remain as is in the live copy.
      • You can suspend the live copy inheritance for a live copy page so that you can change page properties and components. When you suspend inheritance, the page properties and components are no longer synchronized with the source.
      • Switching to a shallow live copy: Will have immediate effect and is non-reversible. Child pages are explicitly detached from the live copy. Further modifications on children cannot be preserved if undone.
      • Switching to a deep live copy: Child-pages remain untouched.
      • Cancel the live copy inheritance for a component so that the component is no longer synchronized with the source component. You can enable inheritance at a later point if required.
      • A Live Copy can only be linked to one Blueprint. A Blueprint can be linked to several Live Copies.
      • Sync livecopy upon Blueprint page update – Push on Modify?
      • Use “Activate on Blueprint activation” rollout. This rollout publishes the live copy when the source is published/activated.
      • Configure OSGi services, CQ MSM Content Update Action /  CQ MSM References Update Action / CQ MSM Page Move Action, to exclude certain properties and nodes from syncing
      • Sync only selective pages upon Blueprint page update
      • https://docs.adobe.com/docs/en/aem/6-3/administer/sites/msm/msm-sync.html
      • Create custom rollout configuration and choose this custom rollout configuration for the Blueprint, and don’t assign any at the page level. This will ensure that livecopy pages inherit/use Blueprint rollout configuration.
      • BluePrint – Push to modify vs On Modification vs targetVersion?
      • Push to modify – Rollout configuration that can be assigned to BluePrint and pushes the content to the live copy when the source is modified. Use this rollout configuration sparingly as it uses the On Modification trigger.
      • On Modification – Trigger can be assigned to a rollout configuration. On Modification trigger will look for source change/update/modification, and trigger the rollout to occur.
      • targetVersion – Synchronization action that can be performed on the LiveCopy. targetVersion creates a version of the live copy. This action must be the only synchronization action included in a rollout configuration.
  • I can define user and group model based on business requirements and organization structure
  • I can define the content promotion process
    • Launches – https://docs.adobe.com/docs/en/aem/6-1/author/site-page-features/launches.html

      • http://localhost:4502/libs/launches/content/admin.html
      • A launch is created to allow you to make changes ready for future publication (while maintaining your current pages).

        • After editing and updating your launch pages you promote them back to the source, then activate the source pages (top-level).

        • Promoting duplicates the launch content back to the source pages and can be done either manually or automatically (dependent on fields set when creating and editing the launch).

          • For example, the seasonal product pages of your online store are updated quarterly so that the featured products align with the current season. To prepare for the next quarterly update, you can create a launch of the appropriate web pages. Throughout the quarter, the following changes are accumulated in the launch copy:

            • Changes to the source pages that occur as a result of normal maintenance tasks. These changes are automatically duplicated in the launch pages.
            • Edits that are performed directly on the launch pages in preparation for the next quarter.
            • When the next quarter arrives, you promote the launch pages so that you can publish the source pages (holding the updated content).

Creating the development process (9%)

  • I can identify existing roles and responsibilities and provide feedback associated with the release and development processes
  • I can define the communication and development escalation process that will be used on a project
  • I can identify process dependencies
  • I can define the staging process when promoting code
  • I can demonstrate knowledge of User Interface (UI) frameworks
    • Touch Optimized UI (overall user experience / user interface of existing AEM administrative and authoring environment
      • Granite, Granite UI, Coral UI
    • Coral / Granite UI – What’s needed to create component?
      • https://vikastechblog.com/aem/quickRef/coralUI_AEM.html
      • AEM – Commercial WCMS product
      • Granite – Application platform of AEM (JCR, OSGi, Felix, CRX, Sling, etc)
      • Granite UI – Client/Server widget framework, that communicate with backend/storage/configuration via REST. Supports creation of components and proceeds Classic UI (Ext JS)
      • Coral UI / Touch UI – Frontend framework (JS/CSS) that defines visual style/behavior of Touch UI that Adobe now uses for all Marketing Cloud products.
      • Coral UI creates UI/UX via CSS and JS. Coral UI needs to also conform to Granite UI so that data can be pulled and saved back into AEM
      • OOTB component usually is then based on Granite -> Granite UI -> Coral UI -> OOTB Component
      • granite/ui/components/coral/foundation/accordion
    • AEM Touch UI test framework
    • HTL – HTML Template Language (previously known as Sightly)
      • https://docs.adobe.com/docs/en/htl/docs/getting-started.html
        • <div data-sly-test=”${properties.jcr:title && properties.jcr:description}”>
        •    <h1>${properties.jcr:title}</h1>
        •    <p>${properties.jcr:description}</p>
        • </div>
        • <!–/* An HTL Comment */→
        • <h1 data-sly-element=”${myElementName}” data-sly-attribute=”${myAttributeMap}”>…</h1>
      • Automatic Context-Aware Escaping
        • <p data-sly-use.logic=”logic.js”>
        •    <a href=”${logic.link}” title=”${logic.title}”>
        •        ${logic.text}
        •    </a>
        • </p>
      • Assuming following logic.js file:
        • use(function () {
        •    return {
        •        link:  ”#my link’s safe”,
        •        title: “my title’s safe”,
        •        text:  ”my text’s safe”
        •    };
        • });
      • The initial example will then result in following output:
        • <p>
        •    <a href=”#my%20link%27s%20safe” title=”my title&#39;s safe”>
        •        my text&#39;s safe
        •    </a>
        • </p>
  • I can setup a sufficient testing infrastructure (staging environments, coordination of tests, clarification of which automated and/or manual tests are mandatory)

There you have it. My take on summarizing various important topics that I used to prepare for my own exam. Below are other great blog articles that can further help you prepare:

AEM interview questions could also come in handy for preparing for the certification exam:

I also came across this super useful flashcard of AEM Architect exam sample questions which could give you a taste of what the exam questions look and feel like. For your convenience, I’ve included them below. You can simply highlight the answer section to reveal the answer.

AEM Architect Sample Questions

  • A small public-sector organization engages you to assist in the architectural design of their AEM system. They have a small inexperienced staff that are very apprehensive about learning new technologies. What is the most important factor to consider as you plan the system design?

A) High Availability
B) Low Maintenance
C) Extensibility
D) Usability
E) Performance

Answer: D) Usability

  • In AEM 5.6 and above, which two scenarios require that the Sling Referrer Filter’s default configuration be changed? (Choose two.)

A) The SAML Authentication Handler is used to authenticate users.
B) The system host name does not match the external DNS name.
C) Automated scripts, using the curl command, will be executing HTTP PUT requests.
D) A javaScript widget on an external website will be posting comments to an AEM page

Answer:
A) The SAML Authentication Handler is used to authenticate users. 
D) A javaScript widget on an external website will be posting comments to an AEM page

  • A customer has asked you to incorporate measures to prevent content grabbing. Which two recommendations should be implemented? (Choose two.)

A) Configure Dispatcher allowedClients section
B) Configure Apache Sling GET Servlet
C) Configure Apache Sling POST Servlet
D) Configure Dispatcher filter section

Answer:
B) Configure Apache Sling GET Servlet
D) Configure Dispatcher filter section

  • A marketing company wants to provide AEM Authors with Dialog/Design Dialog in their native language. Which approach should be taken to ensure that non-authorable content can be presented in desired language?

A) Enclose non-author-able content within cq:text tag
B) Enclose non-author-able content within i18n API
C) Enclose non-author-able content within XSS API
D) Enclose non-author-able content within cq:include tag

Answer: B) Enclose non-author-able content within i18n API

  • A financial institution is identified as a business user. AEM/Campaigns/Segmentation rules must be based on the traits/data provided from the back end of the system. Which two types of information must be captured in the discovery session? (Choose two.)

A) Are there any traits that are combined to establish a segment?
B) How is back end service integrated to retrieve customer data?
C) In what format are segmentation traits retrieved?
D) What are keys/values for segmentation traits?

Answer:
B) How is back end service integrated to retrieve customer data?
C) In what format are segmentation traits retrieved?

  • Your customer asks you to create documentation based on a proposed solution architecture. The customer decides that they want to introduce blog and forum functionality and will need to add reverse replication agents to handle the moderation of data between the publish and author instances. Which two architectural diagrams will need to be modified to reflect these changes? (Choose two.)

A) Conceptual
B) Logical
C) Physical
D) Data Flow

Answer:  B) Logical and D) Data Flow

 

  • Your client is a brick-and-mortor company, and has purchased AEM. Which application component is NOT well-suited to be implemented in AEM?

A) Training video site section as AEM does not bundle a video player
B) Training video site section as AEM is unable to record user interactions.
C) Store finder as AEM does not support geospatial search.
D) Store finder as AEM does not integrate with Google Maps.

Answer:
B) Training video site section as AEM is unable to record user interactions.
C) Store finder as AEM does not support geospatial search.
Note: Group consensus is the answer is either B or C

  • You have found out through your discovery of business requirements that some of the business requirements cannot be accomplished using standard out-of-the-box AEM components. Which requirement can be achieved with out-of-the-box components?

A) Display the top X requested pages in a site
B) Display the current temperature for a given location
C) Display a Google Maps interactive map for an authored location
D) Create an image carousel from a user selected number of pages

Answer: D) Create an image carousel from a user selected number of pages

 

  • A software company wants to display the real-time price of their stock on their employee Intranet. The stock quote will be provided by a third-party vendor. Which two factors will be most relevant to the solution design for this capability? (Choose two.)

A) The name of the vendor providing the stock quote.
B) The ticket symbol of the company.
C) The payload format in which the stock price is returned from the vendor.
D) Authentication requirements imposed by the vendor.
E) Rate limits imposed by the vendor.

Answer:
C) The payload format in which the stock price is returned from the vendor.
E) Rate limits imposed by the vendor.

  • A news media company website has become unresponsive during a time of a day, which is generally considered an off-peak time. The AEM team responsible has investigated and identified DoS (Denial Of Service ) attack . Which two security measures will help reduce the chances of another attack? (Choose two.)

A) Implement a Dispatcher filter to only allow known selectors
B) Change the passwords for default out of the box users (admin , author)
C) Disable the default selectors .feed.xml and infinity.json
D) Uninstall all sample content and users that ships out of the box with AEM

Answer:
A) Implement a Dispatcher filter to only allow known selectors
C) Disable the default selectors .feed.xml and infinity.json

  • You have been tasked with documenting the flow of content from a system that provides real-time stock quotes to an AEM system for display. Which architectural diagram should you modify to show how each of the servers communicate and which ports are used?

A) Conceptual
B) Physical
C) Logical
D) Data-Flow

Answer: B) Physical

  • A customer wants to display icons next to the search results for keyword queries on their site based on the type of resulting document. What do you recommend they do?

A) Copy the entire foundation search component into their project under /apps and modify the search.jsp.
B) Make modifications to the search.jsp for the foundation component under /libs.
C) Create a new component under their /apps project called search with a sling:resourceSuperType of the foundation search component.
D) Create a matching folder structure under /apps for the search component with a custom search.jsp.

Answer: A) Copy the entire foundation search component into their project under /apps and modify the search.jsp.

  • Which metric about a customers existing CMS implementation is LEAST valuable when evaluating potential hosting environments?

A) CMS storage requirements
B) Percentage of requests offloaded by the CDN
C) CPU clock speed of the servers
D) Average daily requests of users visiting the site

Answer: C) CPU clock speed of the servers

  • A multi-national news company engages you to assist with the design and requirements on their project. The functionality requires having several external feeds to display breaking news and also any live scores for major sporting events. What is the most important factor concerning performance that will need to be considered for the proposed solution and functionality?

A) Authentication requirements from each feed
B) Each feed item requires three JCR nodes
C) The import frequency of the feed
D) The payload type in which the feeds are returned

Answer: C) The import frequency of the feed

  • An entertainment website contains the following features: a homepage with consistent toolbar and listing of articles by category; community page; and individual article pages containing a combination of text and images. End users are able to create new forums, browse article by category, login using a modal dialog box and search from toolbar. How many AEM templates would you expect to create?

A) Ten.
B) Seven.
C) Three.
D) Five.

Answer: D) Five

 

  • A digital magazine publisher is migrating to AEM. Their current content management system was built in-house by staff developers, runs on top of a MySQL database, and uses forms for content editing. The business owners have stated that their primary interest in migrating to AEM is to have a more user-friendly page authoring interface. During discovery meetings with business owners and content authors, which is the most significant and relevant conceptual change from the current CMS?

A) That AEM allows authors to drag-and-drop components to build pages.
B) That AEM does NOT use a relational database.
C) That AEM uses a hierarchy-based repository.
D) That AEM is written in Java.

Answer: A) That AEM allows authors to drag-and-drop components to build pages.

 

  • Which three statements about Multi Site Manager, Blueprint, and Live Copy functionality are true? (Choose three)

A) Live Copy can inherit from multiple Blueprints
B) Blueprint can have one or more Live Copies
C) Immediate children of Multi Site Manager (MSM) Blueprint root page are language branches
D) Live Copy of particular Blueprint inherit Rollout configuration configured on a Blueprint

Answer:
B) Blueprint can have one or more Live Copies
C) Immediate children of Multi Site Manager (MSM) Blueprint root page are language branches
D) Live Copy of particular Blueprint inherit Rollout configuration configured on a Blueprint

  • You are conducting a discovery on a client’s current CMS implementation. How would you identify which functionality is missing from their current implementation?

A) Use documentation provided by the client
B) Speak to the key stakeholders of the system and talk to them about how they use the system
C) Speak to the IT department of how the system is built
D) Gain access to the system and start going through code

Answer: B) Speak to the key stakeholders of the system and talk to them about how they use the system

  • The security team at your client wants to protect from repository content modification outside of their network on their publish servers. Which provides the LEAST protection against this specific threat?

A) Disable Sling POST Servlet and WebDAV functionality.
B) Use Dispatcher filter rules to block access to /apps and /libs
C) White-list specific HTTP methods and URIs required for application functionality.
D) Enforce very strong passwords on all systems and use SSL.

Answer:
D) Enforce very strong passwords on all systems and use SSL.
Note: C is possible option

  • Which two business requirements can be achieved by using OOTB AEM components? (Choose two.)

A) An article has Facebook Like button; the number of clicks are stored in Adobe Social.
B) An article can be composed of an arbitrary combination of text, videos, and images.
C) A sidebar contains a list of PDF files which are tagged with the “Product Data Sheet” tag.
D) A store details page displays an embedded map from Bing Maps.

Answer:
A) An article has Facebook Like button; the number of clicks are stored in Adobe Social.
B) An article can be composed of an arbitrary combination of text, videos, and images.
In my opinion, answer should be B) and C), not A).

  • A customer has installed AEM using an application server. The customer has asked you to implement HTTPS in their QA environment with an application server as well. Which three AEM components/configurations need to be changed relative to the QA environment? (Choose three)

A) Configure replication agents to use SSL
B) Install SSL version of dispatcher
C) Add secure flag to dispatcher configuration file
D) Configure the CQ servlet engine HTTP service to use SSL, using company certificate

Answer:
B) Install SSL version of dispatcher
C) Add secure flag to dispatcher configuration file
D) Configure the CQ servlet engine HTTP service to use SSL, using company certificate

  • In which type of architecture diagram would you be most likely to list the IP addresses of individual servers?

A) Conceptual
B) Logical
C) Data Flow
D) Physical

Answer: D) Physical

  • Which type of architecture diagram should you use to present application code and content flow?

A) Logical
B) Data Flow
C) Physical
D) Deployment

Answer: B) Data Flow

  • A large retail company has integrated AEM into their commerce stack. They would like to take advantage of the “ratings” component to allow logged In users to submit a product a rating. However, this company would like the tallied ratings to be shown only after a minimum number of submissions have taken place so that the results are not skewed too far positive or negative initially. Which reason best describe why the ratings component must be extended to meet these requirements?

A) A custom rating service must be created to support this functionality
B) Only the average rating is available via API
C) The author must be able to provide the minimum number of votes for display
D) The Tally/RatingComponent API does not provide the number of user responses

Answer: C) The author must be able to provide the minimum number of votes for display

  • A multi-national company initially rolls out their authoring tools and site in English speaking locations without regard to other languages. After realizing this requirement gap, you are tasked with augmenting the system to facilitate the authoring of content in French and adapting the resulting tools to enable other languages to be added at a later date. What is the name of the tool for managing translation dictionaries?

A) i18n
B) Internationalization Service
C) Translator
D) Dictionary

Answer: C) Translator

  • A project has a fixed budget and the deployment date cannot be moved. Which two steps may regrettably be pushed to post go-live at a greater risk to the project? (Choose two.)

A) Integration testing
B) Performance testing
C) Tough day testing
D) Unit Testing

Answer:
B) Performance testing
C) Tough day testing

  • Which Dispatcher settings restrict the IP addresses that can issue invalidation requests?

A) /allowedClients
B) /filter
C) /renders
D) /virtualhosts

Answer: A) /allowedClients

  • Which three business requirements can be implemented using AEM OOTB functionality/components/plugins? (Choose three.)

A) Ability to display list of completed workflow items
B) Ability to customize content using Twitter profile data
C) Ability to present and sort order status client side
D) Ability to provide ratings for particular page

Answer:
A) Ability to display list of completed workflow items
B) Ability to customize content using Twitter profile data
D) Ability to provide ratings for particular page

  • Which two requirements typically involve integration with a third-party service? (Choose two.)

A) Watermarked Image Generation.
B) Approval Workflow.
C) Coordinate-Based Store Locator.
D) Federated Authentication.

Answer:
C) Coordinate-Based Store Locator.
D) Federated Authentication.

  • A non-profit organization, that uses a content management system that uses a relational database to store content and HTML forms to input content, is planning to migrate to AEM. During the discovery sessions, business users expressed a major concern with their current authoring experience where they have to upload images as part of a form element which will be rendered on a page. Which AEM feature should be described to them to overcome their concern ?

A) AEM can store content in supported RDBMS
B) Authors can in place edit the content on the pages in edit mode
C) AEM can out put content in multiple formats (html , json)
D) Authors can search for images and drop them on to pages in edit mode

Answer: D) Authors can search for images and drop them on to pages in edit mode

  • You have been charged with optimizing the performance of the Home page of a website. The company requires the Home page content to be indexed by search engines. The technical design requires the Home page to NOT be cacheable as it displays a list of recently shared articles. This list is currently generated by using an AEM component which performs a real-time look-up to an API from a third-party company. Which solution will provide the most optimal user experience?

A) Replace the AEM component’s server side logic with a JavaScript widget provided by the third party.
B) Cache the home page using the Dispatcher and implement a cron job to remove the cached file every 15 minutes.
C) Replace the real-time API access with a scheduled job inside AEM which runs every 15 minutes to update the data and trigger a dispatcher cache flush.
D) Cache the rest of the home page and deliver the recently shared article list using AJAX.

Answer: D) Cache the rest of the home page and deliver the recently shared article list using AJAX.

 

  • During a discovery workshop, a content editor requires the ability to publish any page for English and French versions of the website. You decide to create a group to set their permissions to replicate permissions on both the content/en and content/fr nodes. Why would you do this instead of putting the extra permission against the one specific user profile?

A) Groups are easier to administer and manage user access rights.
B) Groups provide greater granularity of control over users.
C) Groups integrate into third party security such as LDAP.
D) User privileges are NOT as powerful as group ones.

Answer: A) Groups are easier to administer and manage user access rights.

  • A packaged goods company is migrating their current site to AEM. Currently the company only has a presence in the US, but intends to expand into two other countries within 12 months of launch on AEM. Which two tasks should take this expansion goal into account? (Choose two.)

A) Site hierarchy definition
B) Component development
C) Workflow implementation
D) Content migration

Answer:
A) Site hierarchy definition
B) Component development

  • A large telecommunications company wants to leverage the capability of AEM to integrate with SAML. As part of this integration you are required to configure the SAML Authentication Handler. By default the SAML 2.0 Authentication handler is disabled. Which two properties must be set to ensure It is enabled? (Choose two.)

A) The identity provider POST URL
B) The Service Provide Entity ID
C) Public certificate of the identity provider
D) Service Ranking

Answer:
A) The identity provider POST URL
B) The Service Provide Entity ID

  • When conducting analysis during the discovery phase, a number of artifacts were obtained as outputs from activities such as surveys, questionnaires, and data gathering. Which is the least significant option?

A) Page load speed
B) Navigation structure
C) Content types that need to be migrated
D) Mobile and tablet display features

Answer: D) Mobile and tablet display features

 

  • A news company wishes to use AEM for their content management needs. The company initially confirmed it would only provide news to subscribers within Australia. Six months later the company has expanded into the wider Asia region and now require Chinese and Korean language options. Which is the most important factor to consider when creating a solution for a CMS with multi-lingual requirement?

A) Maintaining a common look and feel
B) Site structure
C) Translation workflows
D) Creating a new language location for dictionary

Answer:
B) Site structure
Note: The consensus was B but C & D are both potential as well

  • AEM installs default groups and users. Which two are valid for the admin, anonymous, and author users? (Choose two.)

A) It is recommended keeping all three as default.
B) Modifying the anonymous account has additional security implications.
C) The password for the admin account should be changed from the default.
D) All of the default accounts should be deleted

Answer:
B) Modifying the anonymous account has additional security implications.
C) The password for the admin account should be changed from the default.

  • Which three requirements can be met by using AEM OOTB features/components? (Choose three.)

A) Use Google+ to personalize user content.
B) Hide pages within content hierarchy.
C) Index PDF documents uploaded to AEM repository.
D) Enter additional data while approving workflow content.

Answer:
B) Hide pages within content hierarchy.
C) Index PDF documents uploaded to AEM repository.
D) Enter additional data while approving workflow content.

  • Your customer has acquired multiple companies that operate autonomously and want to use AEM to host all of their websites. How should the author users be grouped?

A) Company-specific groups for workflow approval steps and general groups for content editing.
B) General groups for workflow approval and content editing.
C) Separate company-specific groups for both content editing and workflow approval steps.
D) Default AEM groups for workflow approval and company-specific groups for content editing.

Answer: C) Separate company-specific groups for both content editing and workflow approval steps.

 

  • You have been given the task of integrating your AEM authoring system to authenticate with your company’s Active Directory (AD) directory service. Which Java security framework is used to configure the LoginModule used by the identity provider?

A) OWASP
B) PAM
C) JAAS
D) Apache Shiro

Answer: C) JAAS

That’s it! Hope this article has been helpful for you in preparing for the AEM Architect certification exam! First take will be pretty difficult. Don’t get discouraged if you fail. The second take will help you learn about AEM that much more! Remember to take three deep breaths slowly before starting your exam. Also, take some sweets like chocolate to ready your brain for overclocking :-). Good luck and happy career developing!

Share.

About Author

Philip Bae

An avid technologist, entrepreneur at heart, has the determination to make this world a better place by contributing the most useful articles to ThingsYouMustKnow.com, one article at a time.

1 Comment

Leave A Reply