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