跳出平台思维
我们这个时代的一个箴言是,我们生活在一个互联互通的世界。人们在社会上相互联系;公司与其客户和供应商进行交易,以及与员工和股东联系;从松散的个人兴趣集合到跨国慈善机构,各个规模的组织都与其成员建立联系。这种联系景观并非新鲜事物,甚至早在互联网出现之前就已存在,但互联网是连接技术的典范,它已成为人们面对面交流不便时的不可或缺的沟通方式。
网络现在是互联网最明显的面孔,你可能会期望网络上的连接模式大致与线下世界相匹配,而且在很大程度上确实是如此,但网络在许多领域仍远未取代更传统的通信方式。我仍然对今天仍有公司通过发送传真进行业务感到震惊和惊讶!即使在我们喜欢认为是现代的世界里,你也不必走得太远就能找到使用技术迫使接收者手动重新键入信息的组织。(你知道传真的发明是维多利亚时代的吗?)
网络通信的大部分内容都与信息检索有关,因为网络使我们能够将其众多服务器的内容视为单一但相互连接的信息资源。网络上的信息量确实令人惊叹,但仍有大量数据尚未在线上,而在线的内容也尚未实现互联互通。但网络不仅仅关于信息存储和检索。随着越来越多的企业和组织转移到网络,越来越多的业务流程正在实现网络化。这一点在网络商店的兴起中表现得尤为明显,顾客可以在自动化的环境中购买商品和服务。产品选择和支付过程由网络应用处理,店主只需接收销售完成的通知。然而,许多常见的业务和组织流程仍然很少在线上进行。尽管网络取得了明显的成功,但要想成为真正普遍的媒介,仍有一段很长的路要走。
Joomla带着其使命“提供一个灵活的数字出版和协作平台”作为真正的网络应用来到了这个已经连接的世界。对于大多数人来说,“Joomla”这个词等同于Joomla内容管理系统(CMS);对于他们来说,Joomla仅仅是
内容管理系统。不可否认,CMS是Joomla当前最重要的产品,但随着网络的自身发展,我们对内容管理系统应做什么的想法也必须并行发展,并且越来越明显的是,“平台”的概念已经超越了CMS所代表的内容。这正是2008年Joomla领导力峰会起草使命宣言时,Joomla的原始作者所想到的。本文探讨了“跳出平台思考”对Joomla未来的意义,以及基于超媒体的Web服务为何预期将成为Joomla更大使命观的核心特征。
今天的网络在很大程度上是围绕人们建立的;拥有网络浏览器的网民。多年来,在网站上发布内容时,很少考虑其他人可能希望如何消费或重新使用该内容,除了用网络浏览器指向它之外。这种人们会使用网络浏览器浏览网络的假设导致网站优化了这种使用模式,通常产生无意中的后果,即大多数网站已成为信息孤岛。你知道数据在那里,但要进入或退出孤岛是受限制且非同小可的。如果你从CMS检索数据的唯一方法是在访问其页面时解析你得到的HTML,那么对数据的严肃使用将仍然是一项挑战。
网站只是信息孤岛问题的冰山一角。你不必走得太远就能找到组织或组织内部的部门,他们拥有大量的数据,如果能够共享或连接,将会更有用。此外,如果你必须手动将信息输入到你的业务系统中,或者如果你期望你的贸易伙伴将你提供的信息重新输入到他们的业务系统中,那么这就是信息孤岛问题的症状。这同时也是人力资源的巨大浪费。
然而,非人类网络呢?网络服务的发展是对将数据导入和导出网络信息系统问题的一种回应,尤其是在相关的系统由其他团体或组织拥有时。尽管早期设计存在一些错误,例如XML-RPC,但RESTful网络服务API现在已经成为连接异构信息系统时的一种架构选择,尤其是在人类不直接参与的情况下。
网络的增长正在缓慢但肯定地改变人们对其组织中锁定信息以及与外部实体交换信息方式的看法。如果组织要发布和分享更多的数据和业务流程,那么这需要变得极其简单。毕竟,在互联网出现之前,信息系统能够在内部或外部企业边界之间交换数据,使用EDIFACT、X12和其他国际标准,但这通常需要昂贵的定制开发才能实现。现在不同之处在于,互联网和更具体的网络为我们提供了无处不在的连接和统一接口,可以访问所有信息系统。这消除了那些信息孤岛最初存在的一部分原因。
隔离我们信息孤岛的障碍正在崩溃。想象一个未来,在这个未来中,建立新的贸易伙伴关系,至少是基本文件可以在合作伙伴之间自动和无缝传输,可以像在网站上点击链接并回答几个简单问题一样简单。REST API的兴起可以看作是利用网络技术解放数据和使其在各种不同平台上的多种不同设备上可访问的趋势的一部分;使它在商业和组织流程中扮演更动态的角色。一旦你意识到即使是像采购订单这样陈旧的商业文件也可以表示为超媒体内容,那么你就走上了更高效和有效的自动化业务流程的道路。
整个网络是一个单一、庞大、松散耦合的分布式超媒体应用程序,其成功的原因在15年前由HTTP的架构师之一Roy Fielding在他的现在著名的博士论文中进行了分析,其中描述了REST。网络的成功在很大程度上归功于支撑它的REST架构风格,如果我们希望我们的应用程序具有与网络本身相同的可伸缩性、松散耦合、可扩展性等特点,那么采用相同的架构风格是有意义的。由于网络本身就是RESTful的,这并不困难,我们只是在确保我们的应用程序使用与它们构建的平台相同的风格。换句话说,我们应该顺着潮流而不是逆着潮流。
事实证明,大多数REST约束都很容易遵守。实际上,我们通过正确使用HTTP就遵守了其中大多数。然而,有一个词特别重要:“超媒体”。如果我们不实现超媒体及其约束,那么我们不是RESTful的,并且失去了网络架构的一些最重要的好处。超媒体是网络服务的关键。
Fielding将REST约束中最重要的一条称为“超媒体作为应用程序状态引擎”,其本质含义是当服务器向客户端发送资源表示时,它会公开当前应用程序状态以及客户端允许请求的状态转换集。通过确保资源表示是超媒体的,客户端软件可以通过跟随链接或完成嵌入表单来驱动应用程序。这是一个我们都很熟悉的概念,因为它正是当服务器向客户端发送HTML页面(代表应用程序的状态)时发生的,客户端将其渲染给用户,用户点击链接或填写表单,从而通过允许的状态转换之一移动应用程序的状态。
网络服务是我们所说的内容管理的基础技术。但是,为了让Joomla网站成为分布式超媒体内容世界中的一流公民,我们首先需要构建一个全面的、基于超媒体的标准化REST API,这将使任何网站所有者都能轻松提供访问以前被HTML墙所掩盖的内容。这就是网络服务工作组为自己设定的任务,您可以在这里了解他们的工作:http://docs.joomla.org/Web_Services_Working_Group
但是,在核心Joomla发行版中提供一套全面的基于超媒体的Web服务对网站所有者和开发者意味着什么呢?以下是一些可能打开的可能性:
- 创建访问CMS中数据并操作这些数据的客户端代码将变得更加容易。例如,编写那些不时需要的AJAX调用将变得更加容易,例如当您需要在一个模块中拉入一些文章内容或获取某个其他组件中的菜单时。
- 服务可以是分层的,因此您可以创建新服务,通过组合其他服务来提供新的行为。最近提出的例子之一是创建一个新服务,使用户能够轻松地创建新文章并创建所需的关联菜单项和类别。
- 仅用最少的编码,就可以提供使用基于超媒体的现代API访问用户内容的简单方法。这对具有开放数据政策的组织来说非常理想。
- 添加API密钥管理功能应该不会太难,这样您就可以根据需要向用户提供基于费用的API解决方案。
- 第三方开发者能够将基于超媒体的Web服务添加到他们的扩展中,这些服务将与其他来自同一网站的可用的Web服务无缝融合。
- 第三方开发者还可以创建新的可安装服务;这是一个全新的扩展类别,随之而来的是新的销售机会。
- 增加了系统间通信的机会;打破信息孤岛;使世界更接近点对点电子数据交换(EDI)。
我认为这项技术对Joomla CMS的未来至关重要,我一直在努力推动这个项目,首先是通过编写Web服务API的详细规范,然后是通过创建证明概念代码来演示它如何集成到Joomla 3.x以及它可能的样子。
但我只有有限的志愿者时间可用,我希望看到这个项目加速。我希望看到这项技术在今年9月发布的Joomla 3.2中得以实现,为此我创建了一个Kickstarter项目,试图筹集资金,以便我能够全职工作,实现将全面基于超媒体的RESTful Web服务支持集成到Joomla的目标。
在本文章进入“付印”阶段时,离资金募集期结束只剩下几天时间。如果未能达到目标,则项目将无法继续。所以,如果您与我一样,希望将基于超媒体的Web服务纳入下一个Joomla版本,并且愿意帮助我实现这一目标,那么请立即访问Kickstarter并尽可能多地捐款。
这里是链接: http://www.kickstarter.com/projects/964120480/joomla-web-services
谢谢。
Joomla社区杂志上的一些文章代表了作者在特定主题上的个人观点或经验,可能与Joomla项目的官方立场不完全一致。
通过接受,您将访问由https://magazine.joomla.net.cn/之外第三方提供的服务
评论