谷歌'soa架构-为谷歌聚合内容'的web用户界面
google's soa architecture - Aggregating content for google's web user interface
登录谷歌时,谷歌主页会链接到多个其他服务(如Gmail、Play、Drive)。
Q1)是否有一种SOA模式描述了他们为每个服务松散地耦合UI的方式,但同时也提供了标准的菜单栏、标准的外观和跨应用程序的单一登录?
Q2)是否有任何可用的文档来描述他们链接UI内容的体系结构?
编辑
我看了一下Firebug,在菜单栏和应用程序之间似乎存在双向关系。菜单栏有一个指向每个应用程序的链接,但每个应用程序也包含菜单栏。
我可以将其与eclipse UI联系起来,在eclipse UI中,应用程序可以为应用程序菜单做出贡献,但每个菜单都位于eclipse应用程序的上下文中,eclipse应用程序聚合了所有单独的UI插件。
那么谷歌是如何在用户界面中做到这一点的呢?看起来有一些javascript魔法正在进行,菜单栏被注入到每个应用程序中。
Google使用自己的闭包库作为UI部分:
什么是闭包库
闭包库是一个广泛的、经过良好测试的、模块化的跨浏览器JavaScript库。你可以从中提取你需要的东西一大组可重复使用的UI小部件和控件,并且来自较低级别用于DOM操作、服务器通信、动画、数据的实用程序结构、单元测试、富文本编辑等等。
[…]
谁使用闭包库
搜索,Gmail,地图,文档,网站,书籍,阅读器,博客,日历,Google+,照片
https://developers.google.com/closure/library/?hl=en
hawt.io项目有一个有趣的方法:
hawtio是高度模块化的,因此它可以准确地发现JVM中的服务,并动态更新控制台,为它们提供接口。
链接在这里
我不知道谷歌的情况,但我在做类似事情的网站上工作过。在一个例子中,它是一家在世界各地设有办事处的大型房地产机构的网站,主页(和其他页面)包括一个旋转木马,显示特定于该国的内容,所有办公室都使用同一CMS的不同实例来管理自己的内容。
实际情况是,CMS(基于.NET)使用自定义和用户控件(.ascx)文件来呈现最终的aspx页面。这些ascx文件(用于页眉、页脚和旋转木马)、与这些文件相关的所有样式和javascript(根据我们的惯例,放在一个名为_CSS和_JS的无法操作的文件夹中)都被集中维护,然后复制到所有本地网站。
CMS实例(特定于一个国家办事处)将创建自己的页面,但它们都使用中央应用程序提供的这些通用页眉和页脚。
最后一点是保持所有这些同步,你需要某种代理或服务来将这些公共组件传播到所有服务器和CMS实例,以确保它们都使用相同的控件,样式和javascript(样式和javascript可以集中引用,但自定义用户控制需要位于特定CMS的应用程序域中,至少对于.NET是这样)。我们使用Repliweb执行此类任务,但我不太熟悉其详细信息。
从体系结构的角度来看,我认为它是UI的某种插件体系结构,所以将它与Eclipse体系结构联系起来是正确的。中央CMS是一种抽象类型,提供特定站点实例必须遵守和实现的接口
abstract class GoogleSite
{
Control Header { get; set; }
Control Footer { get; set; }
public string Title { get { return "Default title"; } }
public abstract void ProvideContents();
}
class Gmail: GoogleSite
{
//still using same header and footer but Title is different
override public string Title { get { return "Gmail"; } }
public override void ProvideContents()
{
}
}
class GPlus: CentralCMS
{
//Another CMS not overriding the title but Providing different contents
public override void ProvideContents()
{
}
}
- 谷歌表单-根据分配给谷歌应用程序的工作为商业用户预先填充多项选择列表
- 与网络界面相比,谷歌搜索API有时会重复第一个结果,有时会重复第二个结果
- 根据单个用户的决定禁用谷歌标签管理器(选择退出)
- 根据页面标题过滤活跃用户-谷歌分析
- 谷歌地图/GMAP3 - 绘制从用户地理位置到已知目的地的路线 - 需要帮助
- 谷歌地图 - 用户选择不允许位置
- 全身份验证 - 抓住用户被重定向到谷歌的时刻
- 使用谷歌分析'Wordpress网站的用户ID功能
- 当用户与谷歌地图交互时,如何从中获取信息
- 在谷歌地图上显示用户当前位置并更新
- 使用谷歌登录api-管理用户权限
- 谷歌'的用户令牌和授权代码
- 谷歌地图赢得'当用户拒绝共享位置时,t初始化
- 谷歌地图:使用自定义标记显示当前用户位置
- 谷歌标记不显示用户定义的点
- 谷歌'soa架构-为谷歌聚合内容'的web用户界面
- 在嵌入谷歌地图的图像中添加用户界面
- 使用谷歌登录检查已登录的谷歌用户
- 使用谷歌地图路由用户界面与必应
- 创建一个谷歌地图界面