- 浏览: 261716 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
jeans_1312:
...
JAVA检测字符串编码并转换 -
zenzuguo:
为啥我在eclipse tomcat6.0启动时总报错
Ma ...
appfuse2.0.2在eclipse下的开发和使用 -
josewu2009:
楼主我用你的方法在window机器 上 压缩后 ,解压文件时报 ...
java压缩文件夹下的所有文件和选定文件及乱码解决 -
TonyLian:
我觉得2楼提出的,只不过是看起来更漂亮而已,原写法也不会出现B ...
Ibatis动态查询例子(#和$以及iterate等的用法) -
zhaoshg:
谢谢 lemonweirui 的更正,帮我发现了一个bug,谢 ...
Ibatis动态查询例子(#和$以及iterate等的用法)
去年,在一个大型项目(1500w)中用到Web Services,现在项目进入了尾声,所以对以前的开发经历做一个总结。 我想大家一定会问?为什么你们项目中要用到Web Services,因为客户有如下需求: 如果有以上需求,我想大家应该都比较认同这种异构分布式解决方案:客户端用C# .Net开发,通过Web Services调用服务器端Java组件。 其实,上面的解决方案太过于理想,最后我们不得不面对残酷的现实:三种客户端中的两种最后被迫改为B/S。 在项目中,我主要负责Web Services和服务器端组件开发中所遇到的种种问题,相当于技术支持吧,以及部分模块的开发。 以下是我们开发中遇到的实际问题,虽然最终都一一解决,但遇到了几个无法突破的瓶颈:客户端不稳定,客户端响应迟缓,后期测试和维护困难巨大。 一、异构平台的Web Services兼容性 由于Axis是一个嵌入式引擎,所以可以将其打包到最终的WebSphere AppServer(WAS)上,也就是说,我们没有用到WAS提供的Web Services引擎,这引出了后面会谈到的一个问题:Web Services安全性怎么部署? 用Axis时,Axis一直都有一个bug或是说缺陷,官方文档也详细注明,只是我们当时没有发现而走了很多弯路:用Axis发布的Web Services给.net客户端调用时,必须用RPC风格,不能用Web Services标准的跨平台风格Document,而后者是Lomboz axis插件的默认方式。也就是说,我们发布的Web Services总是莫名其妙的不好用。我们用JBuilder2007自带的Axis插件发布,竟然非常顺利。 二、Web Services开发中服务器端组件问题 另外一个问题是,我们的service方法,如果直接给WebWork这样的框架在服务端用的的话,是不会出问题,当提供给.net客户端用时,就会出现lazy loading的错误,因为.net客户端不能接收Proxy对象,必须将数据全部load出来,但这时Hibernate的session已经关闭。项目组很多人遇到这些问题,最后大家不约而同的全部用eager模式,导致了最后的恶果:严重的的性能问题。由于我不是leader,所以当时这个问题发现了,也没法要求别人,毕竟很大的一个团队。 当然,性能问题不只是由Hibernate引起,Web Services本身的性能也非常严重:XML的序列化和反序列化耗时,XML文件的膨胀导致的网络传输,HTTP的无状态导致网络IO性能。切身体会:如果系统必须用分布式,而不是追求所谓的SOA架构,Web Services应该是下下策,因为还有很多协议和方式可以选择:IIOP、RMI、Hessian、burlap、RPC,另外,做系统集成还有Message方式。 Web Services开发中其它问题比较少,因为Web Services本身不用编程,只是部署的事情,开发工具和服务器会自动为我们做,我们只需要理解SOAP引擎的原理和使用就够了,真的遇到问题,可以通过Axis的TcpMonitor监视SOAP数据包。 三、Web Services的安全问题 最后这些问题基本上都解决了,不过还是没有用上,因为在我们已经开发的几种客户端和服务器端部署上很麻烦,还要测试,另外,客户也没法验收这个啊。 当然,我们还回避了一个严肃的问题:我们的Web Services是发布在Axis引擎上,还没有移植到WAS的Web Services引擎,而发布在这个平台,必须有RAD这类开发工具支持,几乎没法手动做。WAS引擎的Web Services安全配置异常复杂:我们当时只配置了Authentication和Integration,没有做Encryption,但完全够用。我当时用Sun的NetBean开发工具发布了一下Web Serivces,也是挺好用的,不过没有配置安全。顺便说一下,Sun的web Services引擎jwsdp2.0设计有点类似于EJB容器,很不好用,移植性特差。 WAS的Web Services安全配置,对照IBM的红皮书,不是很难,但很复杂,安全相关的xml代码都好几百行,好几个文件。配置过程中,和.net客户端通讯时遇到一个问题,怎么也不能互通,但.net和.net客户端可以互通,Java和Java客户端也可以互通,最后我通过拦截soap包,找到了解决办法: 必须手动更改http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3 后的v3,IBM工具生成的是v1,这是标准不兼容引起的,因为当时RAD是04年底,而微软的WSE3.0比较新。后来发现这篇文章有相似的经历:http://pluralsight.com/blogs/kirillg/archive/2005/04/13/7315.aspx 在处理Web Services安全过程中,我通过emule和IBM网站下载了上10本这方面的书籍,我觉得以下资料对我帮助最大: Axis若干文档:Reference、developers-guide、architecture-guide等,非常详细 四、开发过程中的的沟通问题 从技术的角度表达就是:客户端开发人员需要的接口,服务器端开发人员不清楚;服务器端开发人员也不知道怎么把握粒度。譬如,有个updateUser方法,但更新用户信息时,可能需要更新很多信息:用户信息、用户角色、用户所属组….。loadUser时也有同样的按需加载问题。 当然,从技术角度,开发Web Serivces有Bottom-up和Top-down两种开发模式。我们选择了前者,也是最常见的方式,也许用后者更适合我们的项目:从定义的wsdl文件开始,客户端和服务器端开发都遵循它。但问题是:我们怎么确定wsdl,也就是我们所要求的接口,因为我们自己对业务都不是很熟。 五、客户端和服务端开发测试方法 但问题是: 服务器组件测试一次,起容器特慢,而且客户端调用也慢。 我自己认为的解决方案,但未必真的好用: 六、其它问题 特别提的一点是,我们几乎开发了两套“业务层+持久化”解决方案,因为离线客户端也用了NHibernate持久化,这样导致开发测试工作量巨大,就说一点吧:两边同步是通过打包的sql语句,通过SOAP传输,但Access和DB2的sql有不兼容问题,如果要兼容,就会以牺牲性能和灵活性为代价。 另外,我们写项目建议书时很被动,但也没办法,因为有好几家公司竞争。对我们影响极大的几个问题: 1、IBM的WAS比起WebLogic Server易用性差远了,导致部署时极其耗时。而且还有一些bug,譬如连接池资源,当时不得不和IBM工程师咨询。实际上,我们只用到强大的WAS的一个非常小的部分:Web容器。 当然,这个子系统只是我们那个庞大系统的一个部分。上面也就算我做的一点点总结吧,也是教训啊!不过,从个人角度考虑,学到的东西还是很多的。 这个子系统花去了我们将近200个人月,如果说那浪费的部分,估计至少是100个人月的工作量。是什么导致?从我这篇文章只能窥其一角,因为整个系统涉及CMS、OA、BI、E-commerce、GIS、IM、MIS。我自己总结一下,有以下原因: 不过,说实话,项目团队,特别是进公司一、两年的员工都很努力,没有人抱怨什么,我和他(她)们一起合作,还是很开心的。 七、 参考资料或网站: WebService学习,开发总结 http://www.mohappy.com/blog/user1/261/archives/2006/2095.html Axis初学手册 http://www.blogjava.net/mstar/archive/2005/10/06/14870.aspx
1、客户要求项目用C/S架构,并且服务器端是IBM那一套:WebSphere AppServer+DB2+AIX5.3+RS/6000。
2、最终用户上报数据,因为网络原因,譬如Modem上网,可以离线操作,等填写了几十张报表后,可以一次提交。同时,在登录时,可以将服务端数据同步到本地Access或MSSQL数据库,这样提高客户端响应速度。
3、由于有些报表以后可能需要修改,或添加一些新报表,又不想重新开发,这样客户那边工作人员可以通过客户端自定义。
开发过程中,我们用Axis做Web Services引擎,Tomcat做容器。因为我们只有IBM提供的RAD6.0的60天试用版。该工具超级占内存,用内置的WebSphere开发测试极其缓慢,严重影响开发效率,经过我初期试用后,基本废弃了。推荐项目组二三十开发人员用Lomboz eclipse3.12开发,基本满意。
我们服务器端开发,是用Spring+Hibernate,在Spring的Service层上再封装一层,也就是façade模式了,该façade直接发布为Web Services,必须经过这个转换,一是因为性能,二是因为Hibernate的复杂Model对象,在wsdl描述后,被.net客户端识别有些问题,List、Map也会有问题,总之这些对象太复杂了,我们包装成简单的VO对象。
切身体会:一个团队,如果不熟悉Hibernate就随便上,技术风险非常大。Hibernate带来的开发效率,是以团队成员掌握它为前提。
开发过程中,.net客户端那边,VSStudio做得很智能,它会根据wsdl文件生成我们所要的一切,当然,wsdl文件的变化,会导致VSStudio重新生成所有的类和接口,也很耗时,并且容易出问题。
当时解决Web Services安全问题,花了我将近一个月的时间,主要是学习和处理如下四个问题:
XML和Web Services安全规范
WAS的 Web Services引擎的安全部署
Axis和参考的Xfire引擎的Web Services安全
.net客户端WSE3.0的安全以及和WAS的通讯
我们当时用Axis引擎是1.3版本,而该版并不支持标准的OASIS的WS-Security,只有到2.0版才开始,而且几乎都是手写配置文件。
IBM的红皮书:《WebSphere Version 6 Web Services Handbook Development and Deployment.pdf》、《WebSphere Application Server V6 Security Handbook.pdf》,它专门讲述了Web Services安全的原理和具体配置,非常深入浅出。
《Securing Web Services with WS-Security》:这本书很理论化,但我认为非常好,虽然Amazon排行不高。
WSE3.0的MSDN文档。
这应该不是一个技术问题,而是一个软件开发方法学的问题,但对整个软件开发过程影响极大。
我们面对的现实:.net客户端开发人员不懂服务器端Java,服务器端Java开发人员不懂.net。
除了技术壁垒外,还有业务衔接性的问题,因为我们不是纵向分模块开发,而横向开发的前提是我们服务器端开发人员很熟悉业务,知道客户端需要的接口,但实际上,业务主要由客户端推动。所以,两端的开发人员都遇到很大的沟通壁垒。
我们当时做得很笨,也最直接:等服务器端组件发布完毕后,通知客户端开发人员,然后客户端开发人员通过VSStudio提供的Web Services生成工具,根据Axis发布的wsdl文件,生成所需的.net对象,然后像本地调用一样使用。
wsdl随时都在变,这意味着客户端生成的组件总在变化,经常出现编译错误。
客户端开发过程中遇到的问题,一会是客户端自己,一会是服务器端组件:我要的方法包含的信息不够啊。
我们的测试,最后走入了一个怎样的泥潭:譬如测试一张报表,都是在客户端手工填写,然后观察服务器端日志和响应。有人会问,用LoadRunner或Function Tester这类自动测试工具不就ok了吗?我都用过,它们对Web UI确实好用,后者对Swing客户端也好用,但对.net客户端,像是不太现实。
另外,Debug非常困难,因为它要求两端开发人员必须在一起密切配合。
服务器端Service方法必须写单元测试TestCase,可能代码量非常大,测试好后方发布为Web Services。
同时,服务器端提供同一套接口的Mock实现,供客户端开发测试,解决并行开发的问题。
当然,上面的几点,具体到细节,我都省略了,总之问题非常非常多:技术问题、管理问题、方法和过程问题。
2、我们没有针对WAS的开发工具RAD。但说实话,那试用版的RAD也是一个字:慢,而且安装时超级大,约4个G。而且和我们已经在用的版本控制工具VSS没法集成。
3、项目的C/S架构不是很合理,就是原来客户的B/S架构,也运行挺好的,而且用asp,跑在一个pc server上。我们一定程度上为了技术而技术。最后也达不到客户需求:性能+稳定。
4、自定义报表最后没有投入使用,只是一个半成品。本来自定义报表就很难,要是容易,一个软件外行人员,就可以把表现层到持久化轻松搞定,那一般MIS开发人员不要失业了,MDA也没那么强。很多OA平台一直在解决这个问题,也没有发现特别好用的。我们做技术调研期间试过MS的InfoPath和Adobe Designer,以及Excel Server,都不能满足需求。
1、项目建议书空洞,不切实际:公司也很无奈,客户也不成熟。
2、需求调研后的需求分析闭门造车:客户的合同是分阶段,我们上交需求说明书后付20%款,上交设计书后又付20%。全一个瀑布开发,虽然按RUP文档写。到半年后的实际开发时,发现很多需求都不合理。
3、整个过程都没有和客户沟通,到最后开发完毕才让客户看,那时客户也懵了:这不是我要的产品啊。改呀,改呀,熬夜啊。
4、项目团队整体技术实力薄弱,当时调来做Java开发的人员,只有少数几个以前做Java,大多数是临时学。想起那Hibernate使用,心寒啊。另外,WAS问题、AIX问题在产品环境下都出来了:系统不稳定、宕机。
5、整个开发阶段流程没有把握好,像项目规范、测试方法、日志、版本控制,这些后期都出现了,而且非常严重。就说那日志吧,最后出问题都不知道怎么查,日志一遍混乱。
6、缺乏做大项目经验,整个系统架构都比较松散,项目开始时很多都不知从何入手,也很仓促。
7、项目持续一年多,人都换了几批了,工作交接很大问题。
.....
发表评论
-
JProfiler 7.X注册码
2013-05-09 11:23 2407L-Larry_Lau@163.com#24777-1i8 ... -
JVM介绍
2012-03-23 09:52 1104JVM 一、什么是Java虚拟机 当你谈到Jav ... -
Velocity语法
2012-03-22 18:20 1289一、基本语法 1、& ... -
Java排列组合算法
2012-03-11 23:07 3916import java.util.ArrayList; ... -
UrlRewrite使用小结(转)
2011-09-01 10:37 1391urlrewrite顾名思义,就是 ... -
JAVA检测字符串编码并转换
2011-08-03 14:15 6030就一个类,detectUtf8(String w3UrlPar ... -
JAVA NIO 简介
2011-03-09 13:20 986http://www.iteye.com/topic/8344 ... -
解读NIO Socket非阻塞模式
2011-03-09 11:58 1446前言: jdk供的无阻塞I/O(NIO)有效解决了多 ... -
一台机器运行多个JBoss多实例
2011-02-28 10:12 7671我们经常会遇到这种情况,有时候希望在同一台机器上部署若干个JB ... -
如何使 maven+jetty运行时不锁定文件
2011-02-23 13:07 2701原因是Jetty会使用内存映射文件来缓存静态文件,其中包括js ... -
java压缩文件夹下的所有文件和选定文件及乱码解决
2010-12-27 15:04 2355在linux下,如果文件夹内的文件是中文名,那么压缩后,这些文 ... -
Json-lib在Json转Java时日期为空处理出错的解决办法
2010-12-07 20:03 12169我在处理json和java的相互转换中出现这样 ... -
二进制、八进制、十进制、十六进制
2010-11-06 12:57 1905一、 十进制与二进 ... -
根据sessionId获取Session对象
2010-10-22 15:51 7672Servlet2.1之后不支持SessionContext里面 ... -
Dom4J工具类
2010-09-17 16:34 2322import java.io.File; import ja ... -
Spring事务配置的五种方式
2010-09-02 17:20 934Spring配置文件中关于事务配置总是由三个组成部分, ... -
java webservice的发布以及调用
2010-08-25 13:13 6101安装axis 下载:http://ws.apache.org/ ... -
利用Spring的AOP来配置和管理你的二级缓存(EHCache)
2010-08-03 16:23 1043如果我们的项目中采用的是Spring+hibernate来构 ... -
Java操作XML文件 dom4j 篇
2010-07-30 16:44 1105在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它 ... -
dom4j建立,修改XML文档,并解决格式化输出和中文
2010-07-30 16:40 1250package com.holen.dom4j; imp ...
相关推荐
2.用cxf开发webservice 3.这个服务端和客户端的小demo 在服务端 对外开放接口服务,然后在客户端 调用服务端的方法, 实现客户端(一个javaweb项目)对服务端(javaweb项目)方法的调用, 实际上就是发送和接收消息...
【WebService+Android】是将Web服务技术应用到Android平台上的一个重要实践,主要目的是为了实现远程数据交换和交互。Web服务,通常基于SOAP(Simple Object Access Protocol)或REST(Representational State ...
总的来说,"webservice demo"提供了一个实践Web服务开发和使用的实例,对于学习Web服务的概念、技术和工具具有很大的帮助。通过研究这个示例,你可以更好地掌握如何创建、部署和调用Web服务,以及如何在不同的系统和...
使用jQuery库可以简化AJAX调用的过程,但在调用带有参数的Web服务(webservice)并期望返回XML数据时,细节处理变得尤为重要。 本知识点主要针对使用jQuery进行AJAX调用时,涉及到的如何正确传递参数给Web服务,...
内容概要:本文详细介绍了基于DSP28035的CAN在线升级程序及其Bootloader开发服务。主要内容涵盖CAN通讯协议的设计与实现,包括CAN模块初始化、Hex文件解析、内存分配以及应用程序跳转等关键技术点。此外,还讨论了上位机软件的开发选择和技术难点,如超时检测、CRC校验、中断向量表重映射等。文中不仅提供了具体的代码示例,还分享了许多实践经验,如避免内存越界、处理地址扩展等问题的方法。 适合人群:从事嵌入式系统开发的技术人员,尤其是那些对DSP28035感兴趣或正在使用该处理器进行项目的开发者。 使用场景及目标:适用于需要实现远程固件更新的嵌入式设备制造商,旨在提高产品维护效率并减少物理干预的需求。通过学习本文,读者可以掌握如何构建一个稳定可靠的CAN在线升级解决方案。 其他说明:文章强调了协议设计的重要性,并指出了一些常见的错误和陷阱,帮助读者避开这些问题。同时,作者还提到了一些优化技巧,比如利用DMA加速数据传输、合理规划内存布局等,以确保系统的高性能和稳定性。
内容概要:本文详细介绍了基于UDS(Unified Diagnostic Services)协议的Bootloader在Autosar架构下的定制开发过程。主要内容涵盖Autosar架构与DCM(诊断通信管理)模块的集成,以及针对不同系列芯片(如NXP S32K、Infineon TC275等)的具体实现细节。文中通过具体的代码示例展示了从初始化、诊断服务处理到跳转应用程序的全过程,并讨论了不同芯片之间的差异及其应对策略。此外,还涉及了存储器管理、数据传输优化和安全启动等方面的内容。 适合人群:从事汽车电子开发的专业人士,尤其是对Bootloader开发感兴趣的工程师和技术人员。 使用场景及目标:适用于需要深入了解和实现基于UDS协议的Bootloader定制项目的团队。主要目标是提高汽车电子系统的诊断效率和可靠性,同时确保不同芯片平台间的兼容性和性能最优化。 其他说明:文章不仅提供了理论指导,还包括大量实用的代码片段和实践经验分享,帮助读者更好地理解和应用于实际项目中。
内容概要:本文详细介绍了如何通过Modbus协议实现昆仑通态触摸屏与台达VFD-M系列变频器之间的通讯,具体涵盖了硬件接线、关键参数设置、MCGS组态环境中的设备配置、变量定义、界面设计及脚本编写等内容。文中不仅提供了详细的参数设置方法,还分享了一些常见的调试技巧和故障排查方法,如硬件接线注意事项、参数设置要点、通讯故障解决措施等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些需要进行触摸屏与变频器通讯集成工作的人员。 使用场景及目标:适用于需要通过触摸屏远程控制变频器的应用场景,如工厂自动化生产线、机械设备控制等。目标是让读者能够独立完成从硬件连接到软件编程的整个通讯系统搭建过程。 其他说明:文章强调了实际操作中的注意事项和容易忽视的细节,如硬件接线的特殊性、参数设置的准确性、通讯协议的具体应用等,有助于提高项目的成功率和稳定性。同时,提供了丰富的调试工具和方法,帮助读者快速定位和解决问题。
内容概要:本文详细介绍了一种750W高功率因数(PF)充电机电源方案,采用UCC28070、ST6599和PIC16F193X三款芯片组合。UCC28070用于功率因数校正(PFC),通过交错式升压电路提升PF值;ST6599负责LLC谐振变换器,确保高效功率转换;PIC16F193X作为微控制器进行智能控制。文中不仅提供了详细的原理图、设计文件和烧录程序,还分享了具体的应用代码和调试技巧。此外,引用了华南理工大学硕士学位论文,深入探讨了设计优化方法。 适合人群:电源设计工程师、电子工程专业学生、对高效电源设计感兴趣的开发者。 使用场景及目标:适用于需要高功率因数和高效能的充电机应用场景,如电动汽车充电桩、数据中心备用电源等。目标是帮助读者掌握高效电源设计的技术细节,提升产品性能。 其他说明:本文不仅提供了硬件设计思路,还包括软件编程实例,如PFC控制算法、LLC频率调整、故障保护机制等。同时强调了实际应用中的注意事项,如寄存器配置、元件选型、PCB布局等。
内容概要:本文详细介绍了基于200smart PLC和昆仑通态触摸屏构建的一拖三恒压供水系统的实现方法及其调试经验。主要内容涵盖系统架构设计、PID控制参数整定、触摸屏配置、水泵轮换逻辑以及常见的调试技巧和注意事项。文中强调了PID控制在变频器调度中的重要性,提供了具体的代码示例和技术细节,如PID输出限幅处理、Modbus通信映射、压力反馈处理等。此外,作者还分享了许多宝贵的实战经验和教训,如避免在触摸屏上进行复杂运算、确保硬件布局合理性等。 适合人群:从事自动化控制系统设计与调试的技术人员,尤其是对PID控制和PLC编程有一定基础的研发人员。 使用场景及目标:适用于需要精确控制供水压力的工业场合,如小区二次供水、厂房循环水系统等。目标是帮助技术人员理解和掌握一拖三恒压供水系统的实现方法,提高系统的稳定性和可靠性。 其他说明:文中提到的具体参数和代码片段可供参考,但在实际应用中需根据具体情况进行适当调整。
该资源为natsort-3.1.2.tar.gz,欢迎下载使用哦!
该资源为natsort-2.0.0-py2.7.egg,欢迎下载使用哦!
内容概要:本文详细阐述了DeepSeek大模型在服装行业的应用方案,旨在通过人工智能技术提升服装企业的运营效率和市场竞争力。文章首先介绍了服装行业的现状与挑战,指出传统模式难以应对复杂的市场变化。DeepSeek大模型凭借其强大的数据分析和模式识别能力,能够精准预测市场趋势、优化供应链管理、提升产品设计效率,并实现个性化推荐。具体应用场景包括设计灵感生成、自动化设计、虚拟试衣、需求预测、生产流程优化、精准营销、智能客服、用户体验提升等。此外,文章还探讨了数据安全与隐私保护的重要性,以及技术实施与集成的具体步骤。最后,文章展望了未来市场扩展和技术升级的方向,强调了持续优化和合作的重要性。 适用人群:服装行业的企业管理层、技术负责人、市场和销售团队、供应链管理人员。 使用场景及目标:①通过市场趋势预测和用户偏好分析,提升设计效率和产品创新;②优化供应链管理,减少库存积压和生产浪费;③实现精准营销,提高客户满意度和转化率;④通过智能客服和虚拟试衣技术,提升用户体验;⑤确保数据安全和隐私保护,建立用户信任。 阅读建议:此资源不仅涵盖技术实现的细节,还涉及业务流程的优化和管理策略的调整,建议读者结合实际业务需求,重点关注与自身工作相关的部分,并逐步推进技术的应用和创新。
内容概要:本文详细介绍了一套基于三菱FX3U PLC的完整开发方案,涵盖硬件设计和软件编程两个方面。硬件部分包括详细的原理图、PCB文件以及关键组件的选择和布局技巧,如电源模块、光耦隔离电路、继电器输出等。软件部分则涉及梯形图编程和C语言开发,展示了如何利用GX Works2进行梯形图编程,以及如何使用Keil进行C语言开发,实现复杂的控制逻辑和高效的任务调度。此外,还提供了许多调试技巧和注意事项,帮助开发者避免常见错误并提高开发效率。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对PLC开发感兴趣的初学者和有一定经验的研发人员。 使用场景及目标:适用于需要深入了解PLC底层运作机制、掌握硬件设计和软件编程技能的场合。目标是通过实际案例和详细指导,帮助读者快速上手三菱FX3U PLC的开发,实现高效的控制系统设计。 其他说明:文中提供的代码片段和设计思路不仅有助于理解PLC的工作原理,还可以作为实际项目的参考,加速开发进程。同时,文中还分享了许多实践经验,对于解决实际开发中的问题非常有帮助。
甲壳虫adb助手安全下载.apk
内容概要:本文详细介绍了基于SJA1000协议栈的FPGA实现CAN总线控制器的全过程。涵盖了Verilog和VHDL双版本源码、Altera和Xilinx平台的具体实现细节以及完整的testbench程序。文中深入探讨了状态机控制器、CRC校验器、位时序单元和FIFO缓存四大核心模块的设计思路和技术要点。同时,提供了详细的仿真验证方法和优化技巧,如随机延迟测试、时钟管理配置等。此外,还附带了Quartus II 13.0和ISE14.7的安装指南及常见问题解决方案。 适合人群:FPGA开发者、嵌入式系统工程师、电子工程专业学生及研究人员。 使用场景及目标:适用于希望深入了解CAN总线控制器硬件实现的技术人员,帮助他们快速掌握FPGA开发流程,完成从代码编写到仿真的全流程操作。目标是在实际项目中高效实现CAN总线通信功能,提升系统的稳定性和性能。 其他说明:本文不仅提供完整的工程代码和仿真工具,还包括详细的开发板引脚约束配置和跨平台移植指导,确保用户能够顺利进行开发和调试。
中兴光猫G7610V2-V3.0.0P1N12固件
流变学仿真方法:流变学仿真软件介绍.zip
内容概要:本文详细介绍了如何利用昆仑通态触摸屏与ABB变频器ACS510通过Modbus RTU协议实现直接通讯,构建高效的恒压供水系统。文中涵盖了硬件连接、参数设置、脚本编写、策略配置等方面的内容。通过这种方式,不仅简化了操作流程,还提高了系统的稳定性和可靠性。具体而言,文章首先解释了选择这两者的理由,接着逐步讲解了硬件接线方法、参数配置细节、脚本控制逻辑以及一些常见的调试技巧。此外,还特别提到了夜间降压逻辑、故障复位按钮等高级功能的应用。 适合人群:从事自动化控制系统设计、维护的技术人员,尤其是对恒压供水系统感兴趣的工程师。 使用场景及目标:适用于需要稳定水压供应的场合,如居民小区、商业建筑等。主要目标是通过简化操作流程、提高系统稳定性,从而实现更加智能和高效的供水管理。 其他说明:文章提供了大量实际案例和技术细节,帮助读者更好地理解和应用相关技术。同时,强调了硬件和软件相结合的重要性,分享了许多实用的经验和技巧。
内容概要:本文全面介绍了移动开发的相关知识,首先概述了移动开发的概念及其重要性,随后详细介绍了iOS和Android两大主流平台的开发语言、环境及工具,并涵盖了跨平台开发框架如React Native、Flutter等。接着列举了版本控制、构建自动化、UI设计及调试测试等常用工具。文章还提供了丰富的学习资源,包括官方文档、书籍和视频教程。此外,针对移动开发中常见的性能优化、兼容性、安全性和用户体验设计等问题进行了探讨,并通过社交、电商、健身追踪和地图导航等实际案例展示了不同应用场景的技术实现。最后推荐了一些适合初学者的项目,鼓励读者实践所学知识。; 适合人群:对移动开发感兴趣的初学者,以及希望深入了解移动开发技术的开发者。; 使用场景及目标:①了解iOS和Android平台的开发环境和技术栈;②掌握跨平台开发工具的选择与使用;③学习如何解决移动开发中的性能、兼容性、安全等常见问题;④通过实战案例掌握不同类型应用的核心技术实现。; 其他说明:移动开发是一个不断发展的领域,文中提到的技术和工具可能会随行业发展而更新,建议读者持续关注最新动态并不断学习新技能。