Adobe AEM 101 Overview
30 min = 15 min * 2
[slide]
AEM 101 Overview
by Jimmy Lv
[slide]
Agenda
- Part 1: AEM Overview
- AEM 在 Adobe 中的地位
- AEM 是什么?业务价值 👏
- AEM 的历史,顺带解释 Day 公司的贡献
- Part 2: AEM Functionality Preview
- 从使用端来讲,拖拖拽拽
- 从角色分工来讲
- Part 3: AEM 背后实现原理的相关概念
- 一堆名词,根据官方文档顺序讲就是了
- 组件化改变 Web(延伸到现在的 React) via 徐飞讲 十年来感受的前端技术变化 · Issue #28 · xufei/blog
- One more things…
- 自己的想法,学习总结
- Learning RoadMap
[slide]
Part 1: AEM Overview
What? & Why? & How? & Question?
[slide]
How’s Your Customer Experience?
[slide]
Adobe Marketing Cloud
We’re a Leader. And here’s why.
[note] Don’t just create experiences. Make it your business.
- We know what matters most to marketers. => AEM
To be an experience business, it takes a leader.
- We’re a Leader. And here’s why.
[/note]
[slide]
AEM in Adobe Marketing Cloud
[slide]
Adobe Experience Manager
AEM is a comprehensive content management solution for building websites, mobile apps, and forms. And it makes it easy to manage your marketing content and assets.
[note] 涵盖网站和相关服务的创建、管理、部署,一揽子方法
集成软件套装,包含 infrastructure 和 application 层面的工具和服务,前者是后者的基础
[/note]
[slide]
Product history of Adobe CQ
Date | Product
---- | ----------
2002 | Day CQ 3.5
2005 | Day CQ 4.0
2006 | Day CQ 4.1
2008 | Day CQ 4.2
2008 | Day CQ 5.0
2009 | Day CQ 5.2
2010 | Day CQ 5.3
2011 | Adobe CQ 5.4
2012 | Adobe CQ 5.5
2013 | Adobe Experience Manager 5.6
2014 | Adobe Experience Manager 6.0
2015 | Adobe Experience Manager 6.1
2016 | Adobe Experience Manager 6.2
[note] 关键是 Day Software [/note]
[slide]
Google Trending
[note] 解释完全曲线(之和) [/note]
[slide]
知道真相的我眼泪掉下来
前身:CQ5 - Wikipedia, the free encyclopedia
CQ5 or Communique5 (renamed as Adobe Experience Manager) is a Web Content Management System (WCMS) designed to enable users (mainly marketers and IT professionals) to create, edit, manage and optimize websites across different digital channels such as web, mobile, social and more.
[slide]
Day Software
- 收购!Adobe acquires Day Software, a market leader in next-generation web content management (WCM), was an enterprise content management software company. {:&.fadeIn}
- Roy T. Fielding 是 Day Software’s chief scientist,现在是 Senior Principal Scientist at Adobe Systems,在 Adobe 继续担任首席科学家,所以才有了 REST in AEM 这个演讲。
- Day is engaged in the Java Content Repository API for Java standardization process and contributes to open source software projects such as Apache Jackrabbit and Apache Sling.
[note] Apache HTTP 服务器的核心开发者 Roy Fielding,他还是 Apache 软件基金会的合作创始人 [/note]
[slide]
Part 2: AEM Functionality Preview
[slide]
能做啥?
[slide]
功能演示
[slide]
角色分工 之 Content Editor
[slide]
页面编辑 ( 拖拖拽拽 )
[note] 编辑也有几种模式,视角不同。 [/note]
[slide]
Touch UI Customizations
[slide]
组件 构成 页面
[note] 开发,完全组件化看起来好爽!(两者本质都是 HTML) [/note]
[slide]
角色分工 之 PIM Editor
[note] 电子商务,改改价格什么的 [/note]
[slide]
Developing
[slide]
角色分工 之 Componets Developer
[slide]
Part 3: Magic Behind AEM
[slide]
Rio Olympics: ‘Welcome to hell’
[slide]
An author in WCM generates the material which will, at some point, be published to your website. When ready, the content is published to the publish environment.
[slide]
[slide]
技术架构
[slide]
Architechture
[slide]
- Web Application Server: 可以单独集成 Jetty web server,也可以用于第三方
- Web Application Framework: 简化 RESTful 面向对象的 Web 应用,即内容优先
- Content Repository: AEM 引入了 JCR,用于处理非结构化或半结构化的数据;不仅包含内容,还有相关代码、模板等所有内部数据
[slide]
Adobe Experience Manager is a web-based client-server system for building, managing and deploying commercial websites and related services. It combines a number of infrastructure-level and application-level functions into a single integrated package.
[slide]
OSGi (Open Service Gateway Initiative)
OSGi - 维基百科,自由的百科全书:一个基于 Java 语言的服务(业务)规范——OSGi 服务平台(Service Platform)。
目前该平台逐渐成为一个为室内、交通工具、移动电话和其他环境下的所有类型的网络设备的应用程序和服务进行传递和远程管理的开放式服务平台。
[slide]
OSGi 的作用在于 Runtime,之所以为动态模块加载,用于管理复杂度,并可以动态扩展其依赖。(类 JavaScript 的 Require.js ?) 该规范和核心部分是一个框架,其中定义了应用程序的生命周期模式和服务注册。基于这个框架定义了大量的 OSGi 服务:日志、配置管理、偏好,HTTP(运行 servlet)、XML 分析、设备访问、软件包管理、许可管理、星级、用户管理、IO 连接、连线管理、Jini 和 UPnP。
[slide]
最佳实现,Apache Felix
注解形式实现 OSGi 标准 bundle,在 AEM 中成为 Module。
@Property(name = "sample",
options = {
@PropertyOption(name = "option1", value = "&option.label.1"),
@PropertyOption(name = "option2", value = "&option.label.2")
}
)
[slide]
JCR (JSR-170 & JSR-283 Specification)
[slide]
WHAT IS CRX?
CRX is short for Content Repository eXtreme, Day’s JCR-compliant repository. CRX allows you to store, manage, and access data using a standardized Java interface.
[slide]
Sling 背后靠着 CRX 吃饭
[slide]
Sling & REST
[slide]
做一个照片 CMS
[slide]
Sling 背后靠着 CRX 吃饭:
[slide]
对比传统 Controller,直接对应 JCR 节点,并且包含相关信息。
[slide]
[slide]
[note] 不是直接对应文件目录,但是也完全可以这样。 [/note]
[slide]
[slide]
[slide]
URI Decomposition
[slide]
From URL to Content and Scripts
[slide]