`
NIIT_zhu
  • 浏览: 49690 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

利用规则引擎打造轻量级的面向服务编程模式

阅读更多

       目前的系统中,前端的变化越来越多样。光web前端而言,HTML+JS,JQuery,Ext以及其他的各种框架等。曾经Ext刚出来时,我们为其美观、整洁的样式所吸引,但当我们开始熟悉并使用Ext时,却发现其界面让人审美疲劳。前篇一律的界面,让人觉得没有创意。

    最终,我们又回到原来前端的开发模式,通过美工设计界面和样式。然后用JQuery控件,来实现设计的这种表单、列表等。Ajax模式和Post提交模式目前还是共存,考虑到安全性、性能等各种问题,还是不能某种前端技术就能主导整个系统的实现。

    手机App终端出现后,我们发现又有新的前端实现,来访问。我们设计使用HttpClient来提交和获取服务器数据,或者直接用HTML5来设计前端界面。

    单当我们希望HTML5等帮我们统一手机、浏览器等多种终端时,却发现HTML5的展现效果,并不令人满意。特别是现在低版本IE的问题等。

    相对而言,后台的服务程序开发,相对而言框架没有那么容易变化。SSH框架,基本可以满足大部分项目的要求。

    当面对前端的要求时,我们针对具体的界面要求,设计Form类,Bean类、Action以及Hibernate相关的配置文件和类。这种模式由于现在技术成熟,相应的技术人员也多,因此我们可能感觉相对简单。

    但是这种模式也存在问题,对于一个简单的页面应用,可能具有大量的class以及大量的xml配置文件。而且对于不同的前端,我们基本上会配置不同的Struts配置,并且创建新的类。虽然工作简单,代码也重复,但是庞大的文件数目,也使得维护非常困难。

    因此我们需要有个设想,能不能针对一种服务,不管是多种前端来访问,后来实现上只需要一个文件就可以搞定。一项服务对应一个文件,当服务内容变更时,只需要改动一个文件的内容,就可以满足多个终端的需要。

    基于这种设想,我们需要定义每个前端,都用标准的接口。这一块我们需要定义统一的url来接收服务,同时通过参数来区分返回的格式。返回格式包括Json、XML、HTML、JS等。

    定义了统一接口之后,我们如何实现一个文件来对应实现一个服务呢。这一块我们需要借助规则引擎的实现。

    规则引擎通过一个规则包文件,来定义传入的接口数据、需要处理的数据库对象、临时变量或者对象、业务处理逻辑以及返回的接口数据。

    通过一个文件这种设计方式,可以极大简化系统的整个架构。架构师可以将每个界面上需要与服务器端交互的功能,统一用单一的服务来加以设计。使得设计文档中的功能和最终实现的文件,一一对应。

    通过面向服务编程,彻底屏蔽了后台数据库的实现,对于前端界面而言,只需要按照交互的要求,来和服务接口打交道。之后后来的服务,是采用关系型数据库存储、还是采用云存储、还是采用NoSQL存储,就变得无关紧要。可以随时对数据库实现加以调整。

    但是面向服务编程,还有一个轻量级和重量级的问题。对于纯粹的前端而言,URL访问方式没有性能问题。但是如果是后台服务本身之间的相互调用,那就变成负担了。这种情况下,就需要通过后端相互调用的接口。使得接口本身会自动判断,如果是本地的话,就是native方式调用,如果是远程服务,就通过url方式调用。

    最终实现轻量级的面向服务编程。

2
1
分享到:
评论

相关推荐

    Jfinal框架

    JFinal 是一款基于Java语言的轻量级Web开发框架,它的设计目标是高效、易用、足够小巧,让开发者能够快速地构建出稳定且高性能的Web应用。JFinal 的核心理念是"Less is More",它通过简化API接口,减少不必要的中间...

    thinkphp2.1开发包

    ThinkPHP 2.1 是一款深受国内开发者喜爱的PHP轻量级框架,它以其简洁、高效、易学的特点,为Web应用开发提供了强大的支持。这个开发包包含了完整的框架源码、丰富的开发文档以及实例,对于初学者和有经验的开发者来...

    thinkphp5.chm

    ThinkPHP5 是一个基于 PHP7 的轻量级、高性能的国产 Web 开发框架,旨在提高开发效率和项目质量。下面将对 ThinkPHP5 的主要知识点进行详细阐述。 一、框架概述 ThinkPHP5 提供了一套完整的 MVC(Model-View-...

    jfinal3.2_all

    JFinal 是一个基于 Java 语言的轻量级 Web 开发框架,它的设计理念是简单、高效,旨在提高开发效率,降低项目维护成本。在 JFinal 3.2 版本中,该框架进一步优化了性能,增强了功能,并提供了丰富的文档资料和 jar ...

    一个基于C++为主语言,lua为脚本语言的打飞机小游戏.zip

    Lua,另一方面,是一种轻量级的脚本语言,它的语法简洁,易于学习,特别适合编写游戏逻辑和交互。在打飞机游戏中,Lua可以用来定义游戏规则,如飞机的移动、射击、敌人的生成与行为模式。通过C++与Lua的接口(如...

    ThinkPHP 3.1.2 - PHP的开发框架MVC - 含Core,Extend,Example

    ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架, 遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而 诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持...

    BeachHeadGame:海滩头游戏项目

    1. **游戏引擎基础**:开发者可能自定义了一个轻量级的游戏引擎,包括渲染系统、物理引擎、音频处理和输入管理等基本组件。C++的面向对象特性有助于组织这些模块化的代码。 2. **图形渲染**:为了呈现游戏画面,...

    jfinal-1.1.3-src.zip

    JFinal,作为国内知名的轻量级Java Web开发框架,以其简洁、高效的特性深受开发者喜爱。本次我们探讨的是JFinal 1.1.3版本的源代码,通过对源码的剖析,可以更深入地理解其设计理念与实现机制,提升我们的开发技能。...

    TTT-SAM-模块:用于SAM的TTT模块

    Lua是一种轻量级的、解释型的、面向过程的编程语言,因其简洁的语法和易读性而被广泛用于游戏脚本编写。在TTT-SAM-模块中,Lua用于编写各种功能和事件处理程序。 3. **TTT(Traitor Team Terror)模式**: 是Team...

    乒乓球比赛

    在IT行业中,编程语言Lua常被用于游戏开发,特别是对于小型、轻量级的游戏,例如“乒乓球比赛”这样的项目。Lua以其简洁的语法和易于学习的特性,深受开发者喜爱。以下将详细介绍Lua在构建乒乓球比赛游戏中的应用...

Global site tag (gtag.js) - Google Analytics