【JavaWeb】利用开放平台建设网站生态圈

简介: 【JavaWeb】利用开放平台建设网站生态圈

在互联网时代,把网站的服务封装成一系列计算机易识别的数据接口开放出去,供第三方开发者使用,这种行为就叫做Open API,提供开放API的平台本身就被称为开放平台。通过开放平台,网站不仅能提供对Web网页的简单访问,还可以进行复杂的数据交互,将它们的Web网站转换为与操作系统等价的开发平台。第三方开发者可以基于这些已经存在的、公开的Web网站而开发丰富多彩的应用【摘自萤石云开放平台】。

网站的价值在于为他的用户创造价值,淘宝的价值在于为人们创造交易的平台;QQ的价值在于为人们创造交流的平台;新浪微博的价值在于为人们创造表达自我的平台,只有用户得到了他们想要的价值,他们才愿意使用网站的服务,网站的存在才有意义。但是淘宝有上千万卖家和数亿买家,光靠淘宝一个公司不可能满足所有用户的需求,同样,腾讯、新浪微博也无法面面俱到照顾好如此庞大的用户群。

另一方面,用户却不需要为网站提供的价值而买单。没有人需要为自己在QQ上聊天,在淘宝上购物,在新浪发微博而付费。网站必须提供更多的增值服务才能赚钱。比如,QQ可以卖各种钻石会员服务,淘宝可以岀卖商品排名赚钱,新浪微博靠植入广告也能赚点钱。根据长尾效应,这些增值服务的数量越是庞大,种类越是繁多,盈利也就越多。同样,一个网站自己能够开发出的增值服务也是有限的。

大型网站为了更好地服务自己的用户,开发更多的增值服务,会把网站内部的服务封装成一些调用接口开放出去,供外部的第三方开发者使用,这个提供开放接口的平台被称作开放平台。第三方开发者利用这些开放的接口开发应用程序(APP)或者网站,为更多的用户提供价值。网站、用户、第三方开发者互相依赖,形成一个网站的生态圈既为用户提供更多的价值,也提高了网站和第三方开发者的竞争能力和盈利能力。

目前百度、淘宝、腾讯等国内互联网巨头都建设有自己的开放平台,力图利用自己庞大的用户群吸引第三方开发者,打造一个更加庞大的航母战斗群,在市场竞争中呼风唤雨,立于不败之地。

开放平台是网站内部和外部交互的接口,外部需要面对众多的第三方开发者,内部需要面对网站内诸多的业务服务。虽然每个网站的业务场景和需求都各不相同,但是开放平台的架构设计却大同小异,如图7.7所示。

  • API接口:是开放平台暴露给开发者使用的一组API,其形式可以是 RESTful、WebService、RPC等各种形式。
  • 协议转换:将各种API输入转换成内部服务可以识别的形式,并将内部服务的返回封装成API的格式。
  • 安全:除了一般应用需要的身份识别、权限控制等安全手段,开放平台还需要分级的访问带宽限制,保证平台资源被第三方应用公平合理使用,也保护网站内部服务不会被外部应用拖垮。
  • 审计:记录第三方应用的访问情况,并进行监控、计费等。
  • 路由:将开放平台的各种访问路由映射到具体的内部服务。
  • 流程:将一组离散的服务组织成一个上下文相关的新服务,隐藏服务细节,提供统一接口供开发者调用。

总结:

网站通过不断试错,在残酷的市场中寻找自己的竞争优势,持续地推出新功能,发现达不到预期,就立马下线。所以我们看到网站总是不停地推出新功能,发布新产品。打开 Google首页的“更多”链接,Google产品分门别类一大堆,这还只是Google重点推广的产品中的一小部分。这些走马灯般出现的产品背后则是网站工程师辛勤的工作和汗水。

既然我们知道网站不停上新产品是其生存的本能,谁能更快更好地推出更多的新产品,谁就活得更滋润,那么工程师就要做好准备应付这种局面。马克思的劳动价值理论告诉我们,产品的内在价值在于劳动的时间,劳动的时间不在于个体付出的劳动时间,而在于行业一般劳动时间,资本家只会为行业一般劳动时间买单,如果你的效率低于行业一般劳动时间,对不起,请你自愿加班。反之,如果你有一个更具有扩展性的网站架构,可以更快速地开发新产品,也许你也享受不了只上半天班的福利,但是至少在这个全行业加班的互联网领域,你能够按时下班,陪陪家人,看看星星。

以上内容摘自《大型网站技术架构核心原理与案例剖析》第7章

相关文章
|
3月前
|
前端开发 JavaScript Java
计算机Java项目|热门网游推荐网站的设计与开发
计算机Java项目|热门网游推荐网站的设计与开发
计算机Java项目|热门网游推荐网站的设计与开发
|
4天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
|
4天前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
3月前
|
前端开发 Java 关系型数据库
JavaWeb开发简介
JavaWeb开发简介
40 0
|
3月前
|
前端开发 JavaScript Java
计算机Java项目|基于Spring Boot的中小型医院网站的设计与实现
计算机Java项目|基于Spring Boot的中小型医院网站的设计与实现
|
3月前
|
前端开发 JavaScript Java
计算机Java项目|基于SpringBoot的飘香水果购物网站
计算机Java项目|基于SpringBoot的飘香水果购物网站
|
3月前
|
前端开发 JavaScript 搜索推荐
计算机Java项目|基于SpringBoot的旅游网站的设计与实现
计算机Java项目|基于SpringBoot的旅游网站的设计与实现
|
5天前
|
SQL JSON JavaScript
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
Vue 指令、生命周期、this和$、vue脚手架进行模块化开发/ElementUI框架、综合案例,element商品列表展示增删改查
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
|
19天前
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
15 0
|
2月前
|
前端开发 Java 关系型数据库
Java中的电子商务网站开发实战
Java中的电子商务网站开发实战