基于J2EE技术的增值税专用发票网上认证系统
2009-09-01
作者:李红东
摘 要: J2EE技术的有关概念和BEA Weblogic产品的主要功能,给出了基于J2EE技术的增值税专用发票网上认证系统的体系结构。
关键词: J2EE技术 BEA Weblogic 网上认证
随着社会信息化水平的不断提高,具有中国特色的增值税监管体系——“金税工程”的建设正在不断完善。增值税专用发票认证子系统是金税工程的重要组成部分。所谓发票认证是指:销货方纳税人用防伪税控开票子系统开具防伪专用发票,在发票上打印出七要素,包括:发票代码、发票号码、购货方纳税人识别号、销货方纳税人识别号、开票日期、金额、税额,同时将这七要素的信息加密后生成84位密文,打印在专用发票的密码区中。购货方纳税人取得防伪专用发票后,将抵扣联拿到国税局,通过认证子系统进行扫描识别,将84位密文还原后,与票面上的七要素比对。比对相符的,即为“认证相符”,可以作进项抵扣;如果有一项或多项数据不符,即为“认证不符”,不能抵扣。除此之外,还有密文有误、无法认证、重复认证等多种认证结果。
纳税人取得专用发票后,为了避免假票的支付风险需及时到国税局认证,这样每月往返于国税局的费用不是个小数目。如果集中到申报时认证则要面对假票的支付风险和排长队等候认证的问题。如何既能方便纳税人,又能确保增值税专用发票监控的有效性和严肃性是急需解决的问题。利用迅速发展的互联网技术,实行增值税专用发票网上认证是一个很好的解决方案。网上认证是指纳税人通过扫描仪或键盘,将增值税专用发票抵扣联上的七要素和84位密文进行采集并转换为电子信息,在一定的安全机制下,将电子信息通过互联网传输到国税机关,经国税机关的网上认证系统进行密文解密还原,再与七要素的信息进行比对,产生认证结果,最后将认证结果回传给纳税人。
为了使增值税专用发票网上认证系统具有伸缩性,能够根据服务器规模、认证请求量的大小和系统资源状况自动调整系统资源分配(如内存、信号量等),从而满足尽可能多的认证请求,系统采用了J2EE技术和基于J2EE规范的中间件产品BEA Weblogic。
1 J2EE概述
J2EE(Java 2 Platform Enterprise Edition)技术提供了一个基于组件的方法来设计、开发、装配和部署应用程序。J2EE平台提供了一个多层结构的分布式的应用程序模型。该模型具有重用组件的能力,基于扩展标记语言(XML)的数据交换、统一的安全模式和灵活的事务控制的特点。这使用户不仅可以更快地得到基于组件的J2EE的解决方案,而且解决方案独立于平台,不受任何产品和应用程序编程界面(APIs)的限制。用户可以选择最适合于其应用的产品和组件。
(1)分布式的多层应用程序
J2EE平台使用了一个多层的分布式应用程序模型。这个模型把J2EE应用程序分为客户层、Web层、商业层和企业信息系统(EIS)层。J2EE应用程序的不同功能被封装到不同的组件中,不同的组件根据在其所属的层被安装到不同的机器中。图1表示了二个多层的J2EE应用程序。
从图1可以看出,J2EE应用程序既可以是三层结构,也可以是四层结构。但是用户通常将J2EE应用程序的多层结构考虑为三层结构。这是因为它们分布在3个不同的位置:客户机、J2EE服务器和数据库服务器。三层结构可以理解为在标准的的客户端/服务器二层结构的客户端应用程序和后端存储资源中间增加了一个多线程的应用程序服务器。
客户层可以直接和运行在J2EE服务器中的商业层进行通信,也可以通过运行在Web层中的Servlet或JSP页面进行通信。Servlets是一个Java编程语言类,它可以动态地处理请求并作出响应。JSP页面是一个基于文本的文档,它以servlet的方式执行,也可以方便地建立静态内容。具体应用(例如发票认证)由运行在商业层的Enterprise Bean实现。共有三种类型的Enterprise Beans:Session Beans、Entity Beans和Message-Driven Beans。一个Session Bean描述了与客户端的一个短暂的会话,当客户端的执行完成后,Session Bean和它的数据都将消失。一个Entity Bean描述存储在数据库表中的一行持久稳固的数据,如果客户端终止或者服务结束,底层的服务会负责Entity Bean数据的存储。一个Message-Driven Bean结合了一个Session Bean和一个Java信息服务(JMS)信息监听者的功能,它允许一个商业组件异步地接收JMS消息。
(2)J2EE组件
J2EE应用程序由组件组成。一个J2EE组件就是一个自带功能的软件单元,它随同相关的类和文件被装配到J2EE应用程序中,并实现与其他组件的通信。
J2EE组件由Java编程语言编写,并和用该语言编写的其他程序一样进行编译。J2EE组件和标准的Java类的不同点在于:它被装配在一个J2EE应用程序中,具有固定的格式并遵守J2EE规范;它被部署在产品中,由J2EE服务器对其进行管理。
(3)J2EE容器
J2EE服务器以容器的形式为每一个组件类型提供底层服务。容器是一个组件和支持组件的底层平台特定功能之间的接口。一个Web组件、Enterprise Bean或者一个客户端组件必须被装配到一个J2EE应用程序中,并且部署到它们的容器才可以被执行。装配的过程包括为J2EE应用程序中的每一个组件以及J2EE应用程序本身指定容器的设置。容器设置定制了由J2EE服务器提供的底层支持,包括诸如安全性、事务管理、Java命名目录接口(JNDI)搜寻以及远程连接。
J2EE容器分为EJB(Enterprise JavaBeans)容器、Web容器、客户端应用程序容器、Applet容器4种。下面分别加以介绍。
①EJB容器:EJB容器管理J2EE应用程序的enterprise Bean的执行。Enterprise Bean和它的容器运行在J2EE服务器中。
②Web容器:管理J2EE应用程序的JSP页面和Servlet组件的执行。Web组件和它的容器也运行在J2EE服务器中。
③客户端应用程序容器:管理应用程序客户端组件的运行。应用程序客户端和它的容器运行在客户端中。
④Applet容器:管理Applet的执行。由运行在客户端的一个Web浏览器和Java插件一同组成。
2 BEA WebLogic
BEA WebLogic作为符合J2EE规范的新一代基于Java的Web应用服务器,在提供传统的应用服务器功能的同时,还针对当今的Internet技术和Java技术提供了众多功能。
BEA WebLogic应用服务器完整地实现了Enterprise JavaBeans技术,因而能够很方便地将业务逻辑封装为安全可靠的交易型组件。BEA WebLogic支持所有任选的EJB扩展,其中包括分布式交易处理、自动保持持续性和entity;BEA WebLogic应用服务器是一个可扩展的框架,它允许任一标准的Java应用插入其中,包括Java客户端应用;BEA WebLogic的多层JDBC功能使得Java应用能够从网络中的任何位置访问和更新数据库;采用BEA WebLogic可使所有双向通信共享某一客户机/服务器连接,而不必考虑请求类型及被访问的远程对象的数目。数据库连接也可被共享,这样就可以同时支持尽可能多的客户机。BEA WebLogic将数据库查询结果进行缓存,并可在后端DBMS被修改的情况下,对缓存的数据实现实时的自动更新。
采用BEA WebLogic,可以使用户将精力集中于业务逻辑的开发,而无需为在网络上部署该逻辑的基础结构操心,从而方便、高效地实现应用系统。
3 基于J2EE技术的增值税专用发票网上认证系统
增值税专用发票网上认证系统包括国税局服务器和企业客户端二大部分。纳税人通过Internet网络登录国税局网上认证服务器,将扫描识别或录入的专用发票数据提交,由国税局服务器完成专用发票的解密比对等认证过程。基层国税机关通过IE浏览器和税务广域网络对其所管辖的纳税人网上认证数据进行远程管理。系统结构如图2所示。
本系统的服务器软件采用基于J2EE规范的金税三期中间件应用服务器平台架构体系。系统完全采用Java语言进行开发,提供了完善的功能和安全保证。图2中Web服务器前置机本身没有安装网上认证程序,它仅完成用户请求的中转,起到了提高系统安全性的作用。系统设计了用户异常请求的监控功能。当用户提交解密处理的异常发票超过限定值时,系统可以自动关闭该用户的网上认证账户。税务机关可以随时查询所辖税务机关企业的网上认证情况、异常情况并随时进行处理,保证网上认证的安全运行。BEA WebLogic应用服务器提供了较高的接入响应性能,能够在同一时间内响应数以万计用户的并发请求。同时应用服务器可根据用户数量规模选择不同的服务器设备,从安装Windows 2000 Server的PC服务器到UNIX小型机均可,做到了真正与平台无关。对用户并发访问特别大的站点,系统提供多服务器集群处理的功能。
4 结束语
由于J2EE技术采用基于组件的方法设计、开发、装配和部署企业级应用程序,因此遵守J2EE规范开发应用系统能有效地保护用户投资,并使建立可移植、可伸缩的应用成为可能。同时,这些应用能够完美地与其他应用和系统实现互操作。
基于J2EE技术的增值税专用发票网上认证系统具有高效、安全、维护简单的特点。投入运行后,极大地方便了纳税人,提高了国税机关的工作效率。该系统的成功,为基于J2EE技术的系统在税务系统的研究和应用提供了直接经验。
参考文献
1 卡塞姆著,徐翔云译.J2EE权威指南.北京:中国电力出版社,2002
2 Girdley M著,邢国庆译.J2EE应用与BEA Weblogic