当前位置: 代码迷 >> PB >> 让PB动起来的企业级解决方案解决方案
  详细解决方案

让PB动起来的企业级解决方案解决方案

热度:54   发布时间:2016-04-29 08:36:57.0
让PB动起来的企业级解决方案
让PB动起来的企业级解决方案 [size=12px][/size]

用PB近10年了,从PB的疯狂到PB的失落,想当年,用拨号上陶清网的日子到陶清网上不了,心中说不出的心酸。这么久PB好像又有了起色,招人的多了,招培训多了,我也想把自己在项目使用的一些东西提供的大家,希望大家有用.

1. 传统方式下的PB多层,Web解决方案.
特点:该方案完全由PB代码实现,自主知识产权,采用面向对象编程方法开发,扩展性强;可选择直连DB、EASERVER服务器和IIS服务器;采用统一接口,客户端在不同的连接方式下不用修改源代码,只修改客户端配置文件;该方案可以在老项目迁移升级或新项目中使用。
功能: 1)支持大数据对象BLOB的读、存,在IIS中支持动态语句。
  2)支持DW,DS,DWC带参数或SetSQLSelect方式读数据.
  3)支持DW,DS完全读(包括DW语法或子数据窗口)和只数据读.
  4)支持SQL语句带参数执行或读取.
  5)支持存储过程带输入或输出参数的执行.
  6)支持DW,DS多表更新.
  7)支持SQL语句SyntaxFromSQL读取.
  8)支持数据库中的BLOB字段做为DWSyntax读取,用于自定义报表.
  9)自动事务管理,当然也提供不用提交事务接口.如数据备份SQL提交事务是出错.
  10)支持组读操作,可以把所有读事务(BLOB读,DW读,DS读,DWC读,SQL语句读, 存储过程输出读, SQL语句SyntaxFromSQL读取, BLOB字段做为DWSyntax读取)任意的组合在一起进行数据读.作用,减少与服务器的交互次数,提高速度.
  11)支持事务组更新操作,可以把所有更新事务(BLOB更新, DW单、多表更表, DS单、多表更表, SQL执行, 存储过程执行)任意的组合在一起进行事务组操作,可确保数据的完整性.
  12)支持客户端上行,下行的数据压缩通信, 提高速度.
  13)支持客户端整表数据的Cache功能,如小数据的基本档案表,报表中的DWC,作用是提高速度,减少服务器的负担.
  14)支持数据窗口语法的推和拉操作, 数据窗口语法推就是服务器不存在数据窗口的PBD, 客户端上传语法进行数据窗口操作,这种方法在新项目中特别有用. 数据窗口语法拉就是客户端只传DataObject名给服务器,服务器从PBD中读取语法进行数据操作,这种方法可以提高速度,减少通讯数据.
  15)如果选择IIS服务器,还可选择我们的对象Cache技术,系统会自己的缓存对象的数据库连接和会话,可以大大的提高速度,在实际测验中小数据的操作可以提高1/3到1/2的速度.
   
  该方案已在PB11.5环境下实现应用;已实现直连DB接口;SOAP连接IIS、EAS接口;EasySOAP连接IIS、EAS接口.该方案是当前业界功能最全的PB多层,Web解决方案,采用面向对象技术,规范的命名,可读性强,新增功能只要增加个对象在我们的接口上调用就可以了,不用修改现有代码. 该方案提供统一的接口,可以嵌入到任何的框架里面
该方案可以修改成在PB11的下的项目中,但只能连EAS.如果有要求可以为特定的客户做一个PB11以下的IIS组件。 
2. 面向对象基于SOA下的PB与C#混合多层,Web解决方案.
在PB传统方式下编程,服务器响应的速度快,开发速度快,在中小型的项目的是很不错的选择,如果再加上我们的第一套方案后完全可以支持多层,互联网应用.但在大型开发人员多的项目如果采用面向对象数据库编程方式会大大的提高开发效力和增强程序的可维护性.
随着PB11的推出,PB12 BETA的将要到来,PB在UI方面的功能大大的增强,特别是PB12的WPF,用户可以使用.net第三方控件,PB可以自己的在WEBFROM WINFROM WPF中自由的选择,为客户提供多种解决方案而不用的增加开发成本.
在这样的环境下我们研究出一套用C#与PB联合使用的混合多层,Web解决方案.由C#程序员可以选择ADO.Net Entity 或NHibernate作为数据库与对象OR持久层.用WCF进行数据通信,PB做UI,通过调用WFC客户库进行数据对象交互,问题出来,怎么让PB数据窗口高效的绑定对象,数据窗口要怎么定义,WFC服务要怎么的定义才有利用PB的操作,这方面PB厂家还没有这种方案,我们提供了一套我们的解决方案,可以很好实现面向对象基于SOA下的PB与C#下联合编程,该方案只能在PB11后的项目中使用.
3. 网络环境下基于智能卡的灵活软件许可解决方案.
  在中国现在的环境下,软件许可是做为做产品的企业必需要解决的问题,但对于做项目的用户怎么的收钱来说也有一定的作用.
有人会问,.NET,PB的程序都可以反编译软件,用不用许可不是一个样.在.Net的程序可以用混器,VM加密器,在PB10以后的机器码编译我们可以提供核心伪代码清除器.当然没有绝对不可破解的加密方法,堕着时间的改变,什么都有可以,但总比裸奔强.
转入正题,我们在这里为大家介绍我们的网络环境下基于智能卡的灵活软件许可解决方案. 智能卡相当于一个没有显示器的电脑,可以编程,运行代码.我们用VC6封装了客户端API与服务器(一个Window服务)通信,还用服务器(一个Window服务)与智能卡里代码的通信.PB程序里我们已经封装了用户对象,用户只要调用几个Function就可以解决网络环境下基于智能卡的灵活软件许可.
功能:1)一套软件只要选择物美价廉的坚石ET199(19元)的智能卡加密锁,当然用户可以自己迁移到深思4加密锁中,修改相应的API调用就可以了. 
  2)服务器是一个Windows服务的exe单文件,是VC6采用完成端口的Winsock程序,通过修改配置文件支持IPV4,IPV6,可以输出Log日志,热插拨通知.该文件还支持命令行的Win服务安装, Win服务运行, Win服务反安装,序列号输出,文件升级,模块升级.
  3)客户端API是由VC6编写的库,与服务器通信采用加密的Winsock方式.
  4)在加密锁内,提供用户信息区,可以实现软件和某些软件使用者的环境信息(比如机器网卡信息和硬盘信息)的绑定,该区只可以写一次.
  5) 在加密锁内,提供只读数据区, 可保存软件所需要的重要信息来验证软件的合法性,在普通用户权限下只读,验证高级用户权限后可写.
  6) 在加密锁内,提供可读写数据区,可将软件某些数据记录在加密锁中.
  7) 提供了256个模块字,每个模块字可以代表一个软件模块,当设置模块有效后,可以选择是否控制软件的使用到期日期,用户数或使用次数。第个模块通过模块授权码(一组数字)升级目标设备, 授权码绑定指定加密锁,只可以用一次.
  8)每个模块提供种子码表(单向)验证和种子码表(双向)验证方法,可以有效校验加密锁是否有效. 验证方法结果与模块号, 高级用户权限密码和锁开发商编号有关.
  9)提供5组正版验证&反仿真功能,可以选择软件使用后1月,半年,1年等进行验证,可以只用1组,待时机进行验证. 以防止解密者的“仿真”解密,使解密者无法在不修改软件的情况下,使用仿真锁完全替代正版加密锁。采用1024位的RSA加密方法,密钥在加密锁内(任何条件下只可读),RSA运算也在加密锁内.
  10) 安全远程升级,通过文件可以一次性全部更新只读数据区、读写数据区、用户数据区以及密钥区的全部内容。该文件是采用1024位的RSA加密,数据在加密锁内解密后写入锁. 升级绑定指定加密锁,只可以用一次. 模块升级码升级失败或数据区升级失败会使锁失效.
  11)用户序列号, 模块升级码有仿伪功能,可以有效防止电话报序列号时口误. 
  12)提供工具生成数据区升级包,模块升级码.更改高级用户权限密码, 正版验证密钥生成,升级密钥生成,更改开发商编号,加密锁初始化等功能.
  13)所有加密方法都采用公钥加密方法,密钥用户自己生成保存在锁内,运算也在锁内,任何条件下只可写,不可读.如果源码公开也不能破解软件.
  14)可以设置非正常关机的服务器模块并发数等待时间.从于释放出占用的模块并发数.
 该方案在加密锁内程序超过1000行C代码,VC总代码超过10000行.
4. PB多语言全面方案.有PB的系统中,多语言实现通常的方法是保存在数据库中,这样在大型的系统中会占用服务器的资源.我们提供了一套我们的解决方案.
  相关解决方案