tomcat 8005

tomcat 8005 http://www.wellho.net/mouth/837_Tomcat-Shutdown-port.html On a new installation of Tomcat (default config files), you’ll notice that your server.xml file is set up with a shutdown port of 8005, and shutdown=“SHUTDOWN”. What does this mean? It means that anyone who contacts the server locally on port 8005 and send it the words SHUTDOWN can cause Tomcat to close out all its web applications and shut down cleanly. Yikes - is this a security hole of what? It could be. Fortunatly , you'll notice that I said it's a LOCAL connection to the port that causes a shutdown, so it no-one can ssh or telnet in, nor log in from the keyboard unless they're an admin, it might not be a problem .... If your Tomcat server allows anyone except the administrator to log in with a shell, then I strongly suggest you change shutdown="SHUTDOWN" to shutdown="waSS-I41tis" so that at least it won't be a string that any hacker can guess.<del> You might like to change the port number too. Alas, it would be unwise to disable the facility completely, since catalina.sh and shutdown.sh use the port (details read from the config file) as part of their processing. At least server.xml is neither group nor world readable.</del>

2012-05-13 · 1 min · 204 words · -

当装了两个tomcat后,修改tomcat端口

当装了两个tomcat后,修改tomcat端口 http://zfsn.iteye.com/blog/669901 修改Tomcat的端口号: 在默认情况下,tomcat的端口是8080,如果出现8080端口号冲突,用如下方法可以修改Tomcat的端口号: 首先: 在Tomcat的根 (安装) 目录下,有一个conf文件夹,双击进入conf文件夹,在里面找到Server.xml文件,打开该文件。 其次: 在文件中找到如下文本: 也有可能是这样的: 等等; 最后: 将port=“8080"改为其它的就可以了。如port=“8081"等。 保存server.xml文件,重新启动Tomcat服务器,Tomcat就可以使用8081端口了。 注意,有的时候要使用两个tomcat,那么就需要修改其中的一个的端口号才能使得两个同时工作。 修改了上面的以后,还要修改两处: (1) 将 的8009改为其它的端口。 (2) 继续将<Server port="8005" shutdown="SHUTDOWN" debug="0">的8005改为其它的端口。 经过以上3个修改,应该就可以了。 8443

2012-05-13 · 1 min · 27 words · -

Tomcat basic

Tomcat basic archlinux sudo pacman -S tomcat8 http://baike.baidu.com/view/10166.htm tomcat 7 https://archive.apache.org/dist/tomcat/tomcat-7 Tomcat是Apache 软件基金会 (Apache Software Foundation) 的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。 Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。 Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你 运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为7.0.27 Released。 名称的由来 Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O’Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat (英语公猫或其他雄性猫科动物) 。而O’Reilly出版的介绍Tomcat的书籍 (ISBN 0-596-00318-8) 1的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。 版本差异 (主要版本) Apache Tomcat 7.x 是目前的开发焦点。它在汲取了Tomcat 6.0.x优点的基础上,实现了对于Servlet 3.0、JSP 2.2和EL 2.2等特性的支持。除此以外的改进列表如下: · Web应用内存溢出侦测和预防 · 增强了管理程序和服务器管理程序的安全性 · 一般 CSRF保护 ...

2012-05-13 · 2 min · 396 words · -

SCADA

SCADA http://baike.baidu.com/view/51065.htm SCADA(Supervisory Control And Data Acquisition)系统,即数据采集与监视控制系统。SCADA系统的应用领域很广,它可以应用于电力系统、给水系统、石油、化工等领域的数据采集与监视控制以及过程控制等诸多领域。在电力系统以及电气化铁道上又称远动系统。SCADA系统是以计算机为基础的生产过程控制与调度自动化系统。它可以对现场的运行设备进行监视和控制,以实现数据采集、设备控制、测量、参数调节以及各类信号报警等各项功能。由于各个应用领域对SCADA的要求不同,所以不同应用领域的SCADA系统发展也不完全相同。 电力系统应用 在电力系统中,SCADA系统应用最为广泛,技术发展也最为成熟。它作为能量管理系统 (EMS系统) 的一个最主要的子系统,有着信息完整、提高效率、正确掌握系统运行状态、加快决策、能帮助快速诊断出系统故障状态等优势,现已经成为电力调度不可缺少的工具。它对提高电网运行的可靠性、安全性与经济效益,减轻调度员的负担,实现电力调度自动化与现代化,提高调度的效率和水平中方面有着不可替代的作用。 SCADA在铁道电气化远动系统上的应用较早,在保证电气化铁路的安全可靠供电,提高铁路运输的调度管理水平起到了很大的作用。在铁道电气化SCADA系统的发展过程中,随着计算机的发展,不同时期有不同的产品,同时我国也从国外引进了大量的SCADA产品与设备,这些都带动了铁道电气化远动系统向更高的目标发展。 SCADA在石油管道工程中占有重要的地位,如用在系统管理石油管道的顺序控制输送、设备监控、数据同步传输记录,监控管道沿线及各站控系统运行状况等。各站场的站控系统作为管道自动控制系统的现场控制单元,除完成对所处站场的监控任务外,同时负责将有关信息传送给调度控制中心并接受和执行其下达的命令,并将所有的数据记录储存。除此之外的基本功能,现在的SCADA管道系统还具备泄露检测、系统模拟、水击提前保护等新功能。 石油方面应用 目前,国外已广泛采用SCADA系统来实现对城市燃气管道的自动监控和自动保护,并已发展成为燃气管道自动控制系统的基本模式。SCADA系统的工作原理是: 根据数据采集系统获得的系统运行工况参数与设计工况参数的比较结果,然后通过由调节阀和与之配套的电动、气动、电液联动或气液联动执行机构以及检测被调参数的仪表等组成的自动调节系统对某些偏离设计工况的运行参数进行自动纠偏调节。 发展历程 SCADA (Supervisory Control and Data Acquisition) 系统,全名为数据采集与监视控制系统。SCADA系统自诞生之日起就与计算机技术的发展紧密相关。SCADA系统发展到今天已经经历了三代。 第一代是基于专用计算机和专用操作系统的SCADA系统,如电力自动化研究院为华北电网开发的SD176系统以及在日本日立公司为我国铁道电气化远动系统所设计的H-80M系统。这一阶段是从计算机运用到SCADA系统时开始到70年代。 第二代是80年代基于通用计算机的SCADA系统,在第二代中,广泛采用VAX等其它计算机以及其它通用工作站,操作系统一般是通用的UNIX操作系统。在这一阶段,SCADA系统在电网调度自动化中与经济运行分析,自动发电控制 (AGC) 以及网络分析结合到一起构成了EMS系统 (能量管理系统) 。第一代与第二代SCADA系统的共同特点是基于集中式计算机系统,并且系统不具有开放性,因而系统维护,升级以及与其它联网构成很大困难。 90年代按照开放的原则,基于分布式计算机网络以及关系数据库技术的能够实现大范围联网的EMS/SCADA系统称为第三代。这一阶段是我国SCADA/EMS系统发展最快的阶段,各种最新的计算机技术都汇集进SCADA/EMS系统中。这一阶段也是我国对电力系统自动化以及电网建设投资最大的时期,国家计划未来三年内投资2700亿元改造城乡电网可见国家对电力系统自动化以及电网建设的重视程度。 第四代SCADA/EMS系统的基础条件已经或即将具备,预计将与21世纪初诞生。该系统的主要特征是采用Internet技术、面向对象技术、神经网络技术以及JAVA技术等技术,继续扩大SCADA/EMS系统与其它系统的集成,综合安全经济运行以及商业化运营的需要。 SCADA系统在电气化铁道远动系统的应用技术上已经取得突破性进展,应用上也有迅猛的发展。由于电气化铁道与电力系统有着不同的特点,在SCADA系统的发展上与电力系统的道路并不完全一样。在电气化铁道远动系统上已经成熟的产品有由我所自行研制开发的HY200微机远动系统以及由西南交通大学开发的DWY微机远动系统等。这些系统性能可靠、功能强大,在保证电气化铁道供电安全,提高供电质量上起到了重要的作用,对SCADA系统在铁道电气化上的应用功不可没。 发展瞻望 SCADA系统在不断完善,不断发展,其技术进步一刻也没有停止过。当今,随着电力系统以及铁道电气化系统对SCADA系统需求的提高以及计算机技术的发展,为SCADA系统提出新的要求,概括地说,有以下几点: 1.SCADA/EMS系统与其它系统的广泛集成 SCADA系统是电力系统自动化的实时数据源,为EMS系统提供大量的实时数据。同时在模拟培训系统,MIS系统等系统中都需要用到电网实时数据,而没有这个电网实时数据信息,所有其它系统都成为"无源之水"。所以在这今十年来,SCADA系统如何与其它非实时系统的连接成为SCADA研究的重要课题;现在在SCADA系统已经成功地实现与DTS (调度员模拟培训系统) 、 企业MIS系统的连接。SCADA系统与电能量计量系统,地理信息系统、水调度自动化系统、调度生产自动化系统以及办公自动化系统的集成成为SCADA系统的一个发展方向。 2.变电所综合自动化 以RTU、微机保护装置为核心,将变电所的控制、信号、测量、计费等回路纳入计算机系统,取代传统的控制保护屏,能够降低变电所的占地面积和设备投资,提高二次系统的可靠性。变电所的综合自动化已经成为有关方面的研究课题,我国东方电子等公司已经推出相应的产品,但在铁道电气化上还处于研究阶段。 3.新技术研究与应用 专家系统、模糊决策、神经网络等新技术研究与应用 利用这些新技术模拟电网的各种运行状态,并开发出调度辅助软件和管理决策软件,由专家系统根据不同的实际情况推理出最优化的运行方式或出来故障的方法,以达到合理、经济地进行电网电力调度,提高运输效率的目的。 4.面向对象、Internet、及JAVA的应用 面向对象技术 (OOT) 是网络数据库设计、市场模型设计和电力系统分析软件设计的合适工具,将面向对象技术 (OOT) 运用于SCADA/EMS系统是发展趋势。 随着Internet技术的发展,浏览器界面已经成为计算机桌面的基本平台,将浏览器技术运用于SCADA/EMS系统,将浏览器界面作为电网调度自动化系统的人机界面,对扩大实时系统的应用范围,减少维护工作量非常有利;在新一代的SCADA/EMS系统中,传统的MMI界面将保留,主要供调度员使用,新增设的Web服务器供非实时用户浏览,以后将逐渐统一为一种人机界面。 JAVA语言综合了面向对象技术和Internet技术,将编译和解释有机结合,严格实现了面向对象的四大特性: 封装性、多态性、继承性、动态联编,并在多线程支持和安全性上优于C++,以及其它诸多特性,JAVA技术将导致EMS/SCADA系统的一场革命。 5.3D scada 3D组态软件,全称3D组态监控软件系统软件。英文简写3DSCADA (3D Supervisory Control and Data Acquisition(三维数据采集与监视控制),它处于自动化控制系统的最高一级平台,一般包括开发环境和应用环境两部分。3D组态能够以灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的组态软件工具。3D组态软件通过三维立体监控设备达到用户如身临其景的感觉,使得人机界面控制更加逼真,更具人性化。3D组态软件的应用领域很广,可以应用于电力系统、给水系统、石油、化工、冶金等领域的数据采集与监视控制以及过程控制等诸多领域。 态神3DSCADA 也将更多的应用在各个领域! 随着工业自动化水平的迅速提高, 传统的组态软件已经日益不能满足人们的需求,程序员和操作员期待更先进的自动化软件出现,3D是这个时代产物,3D被应用在组态软件领域也就顺利成章。 3D利用DirectX/OpenGL开发,程序员可以通过简单的方法组态3D立体画面,将所有需要监测的部位放置于3D画面上,达到多方位立体监测的功能。 泄漏监测系统 SCADA泄漏监测系统 (以一条管线为例) 由变送器,服务器,远程客户端,通信网络等部分组成,如图A 所示。目前安装在长输管线上的变送器主要有压力变送器、温度变送器和流量变送器几种。需要指出的是,国内大部分管线两端都未安装流量变送器。 通信网络是系统内部信息传输的物理途径。F9G与上层服务器进行通信及数据传输、远程客户端对服务器数据库的访问以及对服务器的0') 访问均是通过通信网络进行的。该系统可基于局域网、光纤及电话线、微波等不同类型的通信方式,具有良好的适应能力。此外,系统提供了0') 访问功能,使得任何一台与服务器建立了网络连接并且安装有ST 或其他网络浏览器的计算机均可成为系统的0') 客户。 该系统应用在某油田输油管线上取得了显著的成效,系统的使用大大提高了油田生产和管理的自动化水平,为油田创造了明显的经济效益和社会效益。

2012-05-10 · 1 min · 79 words · -

set command

set command set 命令 作用主要是显示系统中已经存在的shell变量 (是变量, 不是环境变量),以及设置shell变量的新变量值。使用 set 更改 shell 特性时,符号"+“和”-“的作用分别是打开和关闭指定的模式。set 命令不能够定义新的shell变量。如果要定义新的变量,可以使用declare 命令以变量名=值 的格式进行定义即可。 使用declare命令定义一个新的环境变量"mylove”,并且将其值设置为"Visual C++",输入如下命令: #定义新环境变量, 注意: 值必须带引号 declare foo='bar' 再使用set命令将新定义的变量输出为环境变量,输入如下命令: #设置为环境变量 set -a foo 执行该命令后,将会新添加对应的环境变量。用户可以使用env命令和grep命令分别显示和搜索环境变量"mylove",输入命令如下: #显示环境变量值 env | grep foo 此时,该命令执行后,将输出查询到的环境变量值。 选项 -a:标示已修改的变量,以供输出至环境变量。 -b:使被中止的后台程序立刻回报执行状态。 -C:转向所产生的文件无法覆盖已存在的文件。 -d:Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。 -e:若指令传回值不等于0,则立即退出shell。 -f:取消使用通配符。 -h:自动记录函数的所在位置。 -H Shell:可利用"!"加<指令编号>的方式来执行history中记录的指令。 -k:指令所给的参数都会被视为此指令的环境变量。 -l:记录for循环的变量名称。 -m:使用监视模式。 -n:只读取指令,而不实际执行。 -p:启动优先顺序模式。 -P:启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接。 -t:执行完随后的指令,即退出shell。 -u:当执行时使用到未定义过的变量,则显示错误信息。 -v:显示shell所读取的输入值。 -x:执行指令后,会先显示该指令及所下的参数。 -e 若指令传回值不等于 0,则立即退出 shell。 ...

2012-05-10 · 1 min · 193 words · -

SOA

SOA 面向服务的体系结构 (Service-Oriented Architecture,SOA) 是一个组件模型,它将应用程序的不同功能单元 (称为服务) 通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。 SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML/Web Service技术之后的自然延伸。 SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。 面向服务的体系结构 松耦合的系统 这种具有中立的接口定义 (没有强制绑定到特定的实现上) 的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。而另一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。 对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变化的业务为按需 (On demand) 业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。 虽然面向服务的体系结构不是一个新鲜事物,但它却是更传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在二十多年了。虽然基于 SOA 的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。由于它考虑到了系统内的对象,所以虽然 SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。不同之处在于接口本身。SOA 系统原型的一个典型例子是通用对象请求代理体系结构 (Common Object Request Broker Architecture,CORBA) ,它已经出现很长时间了,其定义的概念与 SOA 相似。 然而,现在的 SOA 已经有所不同了,因为它依赖于一些更新的进展,这些进展是以可扩展标记语言 (eXtensible Markup Language,XML) 为基础的。通过使用基于 XML 的语言 (称为 Web 服务描述语言 (Web Services Definition Language,WSDL) ) 来描述接口,服务已经转到更动态且更灵活的接口系统中,非以前 CORBA 中的接口描述语言 (Interface Definition Language,IDL) 可比了。 Web 服务并不是实现 SOA 的惟一方式。前面刚讲的 CORBA 是另一种方式,这样就有了面向消息的中间件 (Message-Oriented Middleware) 系统,比如 IBM 的 MQseries。但是为了建立体系结构模型,您所需要的并不只是服务描述。您需要定义整个应用程序如何在服务之间执行其工作流。您尤其需要找到业务的操作和业务中所使用的软件的操作之间的转换点。因此,SOA 应该能够将业务的商业流程与它们的技术流程联系起来,并且映射这两者之间的关系。例如,给供应商付款的操作是商业流程,而更新您的零件数据库,以包括进新供应的货物却是技术流程。因而,工作流还可以在 SOA 的设计中扮演重要的角色。 此外,动态业务的工作流不仅可以包括部门之间的操作,甚至还可以包括与不为您控制的外部合作伙伴进行的操作。因此,为了提高效率,您需要定义应该如何得知服务之间的关系的策略,这种策略常常采用服务级协定和操作策略的形式。 最后,所有这些都必须处于一个信任和可靠的环境之中,以同预期的一样根据约定的条款来执行流程。因此,安全、信任和可靠的消息传递应该在任何 SOA 中都起着重要的作用。 体系结构作用 我可以用面向服务的体系结构做什么? 对 SOA 的需要来源于需要使业务 IT 系统变得更加灵活,以适应业务中的改变。通过允许强定义的关系和依然灵活的特定实现,IT 系统既可以利用现有系统的功能,又可以准备在以后做一些改变来满足它们之间交互的需要。 下面举一个具体的例子。一个服装零售组织拥有 500 家国际连锁店,它们常常需要更改设计来赶上时尚的潮流。这可能意味着不仅需要更改样式和颜色,甚至还可能需要更换布料、制造商和可交付的产品。如果零售商和制造商之间的系统不兼容,那么从一个供应商到另一个供应商的更换可能就是一个非常复杂的软件流程。通过利用 WSDL 接口在操作方面的灵活性,每个公司都可以将它们的现有系统保持现状,而仅仅匹配 WSDL 接口并制订新的服务级协定,这样就不必完全重构它们的软件系统了。这是业务的水平改变,也就是说,它们改变的是合作伙伴,而所有的业务操作基本上都保持不变。这里,业务接口可以作少许改变,而内部操作却不需要改变,之所以这样做,仅仅是为了能够与外部合作伙伴一起工作。 另一种形式是内部改变,在这种改变中,零售组织现在决定它还将把连锁零售商店内的一些地方出租给专卖流行衣服的小商店,这可以看作是采用店中店 (store-in-store) 的业务模型。这里,虽然公司的大多数业务操作都保持不变,但是它们现在需要新的内部软件来处理这样的出租安排。尽管在内部软件系统可以承受全面的检修,但是它们需要在这样做的同时不会对与现有的供应商系统的交互产生大的影响。在这种情况下,SOA 模型保持原封不动,而内部实现却发生了变化。虽然可以将新的方面添加到 SOA 模型中来加入新的出租安排的职责,但是正常的零售管理系统继续如往常一样。 为了延续内部改变的观念,IT 经理可能会发现,软件的新配置还可以以另外的一种方式加以使用,比如出租粘贴海报的地方以供广告之用。这里,新的业务提议是通过在新的设计中重用灵活的 SOA 模型得出的。这是来自 SOA 模型的新成果,并且还是一个新的机会,而这样的新机会在以前可能是不会有的。 垂直改变也是可能的,在这种改变中,零售商从销售他们自己的服装完全转变到专门通过店中店模型出租地方。如果垂直改变完全从最底层开始的话,就会带来 SOA 模型结构的显著改变,与之一起改变的还可能有新的系统、软件、流程以及关系。在这种情况下,SOA 模型的好处是它从业务操作和流程的角度考虑问题而不是从应用程序和程序的角度考虑问题,这使得业务管理可以根据业务的操作清楚地确定什么需要添加、修改或删除。然后可以将软件系统构造为适合业务处理的方式,而不是在许多现有的软件平台上常常看到的其他方式。 正如您可以看到的,在这里,改变和 SOA 系统适应改变的能力是最重要的部分。对于开发人员来说,这样的改变无论是在他们工作的范围之内还是在他们工作的范围之外都有可能发生,这取决于是否有改变需要知道接口是如何定义的以及它们相互之间如何进行交互。与开发人员不同的是,架构师的作用就是引起对 SOA 模型大的改变。这种分工,就是让开发人员集中精力于创建作为服务定义的功能单元,而让架构师和建模人员集中精力于如何将这些单元适当地组织在一起,它已经有十多年的历史了,通常用统一建模语言 (Universal Modeling Language,UML) ,并且描述成模型驱动的体系结构 (Model-Driven Architecture,MDA) 。 对于面向同步和异步应用的,基于请求/响应模式的分布式计算来说,SOA是一场革命。一个应用程序的业务逻辑 (business logic) 或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。例如,服务的接口和实现相独立。应用开发人员或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。举例来说,一个服务可以用.NET或J2EE来实现,而使用该服务的应用程序可以在不同的平台之上,使用的语言也可以不同。 SOA与互联网 Service-Oriented Device Architecture (SODA),即"面向服务的设备架构",是一个由IBM和美国Florida大学发起的倡议(Initiative)和联盟(Alliance),通过引入基于服务 (SOA) 的编程模型,以规范和简化智能设备 (Devices) 与企业应用的集成。SODA致力于充分利用嵌入式系统和IT领域已有的标准,为智能设备与SOA技术的融合提供一个标准平台。 SODA的目标是让软件开发者能够像用SOA技术实现IT业务集成那样在诸如远程医疗、军事、以及RFID等物联网系统中实现与传感器和执行器的集成[1]。 具体来说,SODA提供标准接口,把硬件设备功能转换成与硬件无关的可调用的软件服务,实现如下目标: 1. 实现应用集成商与设备和传感器制造商的无缝对接; 2. Integrate once, deploy everywhere, 使用户专注于整体应用方案而不是陷于设备连接工作; 3. 在应用和众多 (泛在) 设备协议之间建立一个通用接口和DDL,形成统一数据交换标准; 4. 作为一个中间件平台,为众多行业应用提供应用支持。 SODA架构 ...

2012-05-10 · 3 min · 505 words · -

Maven OutOfMemory

Maven OutOfMemory http://juvenshun.iteye.com/blog/240257 当Maven项目很大,或者你运行诸如 mvn site 这样的命令的时候,maven运行需要很大的内存,在默认配置下,就可能遇到java的堆溢出。如: [INFO] Building jar: /home/dl9pf/svn/mindquarry/mindquarry-jcr/mindquarry-jcr-changes/target/mindquarry-migration-with-dependencies.jar [INFO] ———————— [ERROR] FATAL ERROR [INFO] ———————— [INFO] Java heap space [INFO] ———————— [INFO] Trace java.lang.OutOfMemoryError: Java heap space at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:99) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:518) … at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) [INFO] ———————— [INFO] Total time: 7 minutes 14 seconds [INFO] Finished at: Wed Sep 05 07:44:55 CEST 2007 [INFO] Final Memory: 37M/63M [INFO] ———————— 解决的方法是调整java的堆大小的值。 Windows环境中 找到文件%M2_HOME%binmvn.bat ,这就是启动Maven的脚本文件,在该文件中你能看到有一行注释为: @REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE... 它的意思是你可以设置一些Maven参数,我们就在注释下面加入一行: set MAVEN_OPTS= -Xms128m -Xmx512m 之后,当你运行Maven命令如 mvn -version 的时候,你会看到如下的输出: E:test>mvn -versionE:test>set MAVEN_OPTS= -Xms128m -Xmx512m Maven version: 2.0.9 Java version: 1.6.0_07 OS name: “windows 2003” version: “5.2” arch: “x86” Family: “windows” ...

2012-05-08 · 1 min · 148 words · -

Java 运算符

Java 运算符 三目运算符(又称条件运算符) 三元运算符一般用的很少,因为它在程序段中的可读性很差,所以笔者建议不要经常使用三元运算符,但很少使用并不代表不使用,所以还是要掌握好它的用法,三元运算符的表达形式如下: 布尔表达式?值 0 : 值 1 它的运算过程是: 如果布尔表达式的结果是 true,就返回值 0,如果布尔表达式的结果是 false,就返回值 1,例如下面的程序段。 public class data21{ public static void main(String[] args){ int a=10; int b=20; System.out.println(“此三元运算式结果是: “+((a>b)?‘A’:‘B’)); } } 分析上面程序段: 因为"a"是小于"b”,所以"a>b"这个关系运算符的结果是"false”,既然是"false",那么选择值 1,即这个三元运算符的结果是"B"。 总结: 条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。 variable x = (expression) ? value if true : value if false 实例 public class Test { public static void main(String args[]){ int a , b; a = 10; b = (a == 1) ? 20: 30; System.out.println( “Value of b is : " + b ); ...

2012-05-03 · 1 min · 180 words · -

webUI test

webUI test Selenium WebDriver, Watir, Sahi, cpress

2012-05-03 · 1 min · 7 words · -

linux Benchmark Tools

linux Benchmark Tools Benchmark Tools Phoronix Test Suite Comprehensive testing and benchmarking platform IOzone Filesystem benchmark tool that measures a wide variety of file operations netperf A network performance benchmark LLCbench Low Level Architectural Characterization Benchmark Suite HardInfo System Profiler and Benchmark GtkPerf GTK+ performance benchmark

2012-05-02 · 1 min · 46 words · -

Linux Testdisk

Linux Testdisk linux下超帅的分区表修复软件.以前用过n多的windows的分区表修复软件,没想到linux中有这么好用这么方便的修复软件,速度那叫一个快啊。。没有见到这个分区表修复软件以前我都白活了。。。。。 好了,这个软件叫testdisk.很帅的。。 如果你是使用修复光碟,就下载一个这个软件到电脑中,如果是恢复usb的disk直接 #sudo apt-get install testdisk 使用的话先sudo testdisk 1.选择Create来进行分析 Use arrow keys to select, then press Enter key: [ Create ] Create a new log file [ Append ] Append information to log file [ No Log ] Don’t record anything 2.然后选择testdisk中你要修复的硬盘,回车 Select a media (use Arrow keys, then press Enter): Disk /dev/sda - 160 GB / 149 GiB - ATA HITACHI HTS54251 Disk /dev/sdb - 3272 MB / 3121 MiB - SM324BC USB DISK 3.选择testdisk修复的平台,我们是Intel的,所以选择他 ...

2012-05-01 · 2 min · 331 words · -

debian wine frozen throne

debian wine frozen throne download source from http://www.winehq.org/download/ sudo apt-get install flex sudo apt-get install bison ./tools wine “Frozen Throne.exe” -opengl

2012-04-29 · 1 min · 21 words · -

wine

wine 卸载wine中已经安装的软件 到程序的目录里面 wine 卸载程序.exe wine,是一款优秀的Linux系统平台下的模拟器软件,用来将Windows系统下的软件在Linux系统下稳定运行,该软件更新频繁,日臻完善,可以运行许多大型Windows系统下的软件。另外英语单词wine是葡萄酒的意思。 刚刚步入Linux,难免要有时利用一下Windows的程序资源,Wine提供了一个用来运行Windows程序的平台。 Wine (Wine Is Not an Emulator)[即Wine不仅仅是一个模拟器]是一个在Linux和UNIX之上的,Windows 3.x 和 Windows APIs的实现.它是一个Windows兼容层,用通俗的话说,就是一个Windows模拟器,这个层既提供了一个用来从Windows源进出到UNIX的开发工具包(Winelib),也提供了一个程序加载器,该加载器允许不用任何修改Windows 3.1/95/NT的二进制文件,就可以运行在Intel Unix及其衍生版本下.Wine可以工作在绝大多数的UNIX版本下,包括Linux, FreeBSD, 和 Solaris. Wine不需要Microsoft Windows, 因为这是一个完全由百分之百的免费代码组成的,可以选择的实现,但是它却可以随意地使用本地系统的DLLs,如果它们是可以被利用的话.Wine的发布是完全公开源代码的,并且是免费发行的。 目前 Wine 仍在发展阶段,但是较新的版本可以运行一些著名软件,甚至是 Photoshop CS3! Wine的官方站点是http://www.winehq.com/,虽然你可以在它的官方站点下载源代码,自己配置编译,不过这个过程可是比较繁琐的!

2012-04-29 · 1 min · 31 words · -

JMS

JMS jms即Java消息服务 (Java Message Service) 应用程序接口是一个Java平台中关于面向消息中间件 (MOM) 的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。JMS (Java Messaging Service) 是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,翻译为Java消息服务。 JMS是一种与厂商无关的 API,用来访问消息收发系统。它类似于 JDBC(Java Database Connectivity): 这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商目前都支持 JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ,这只是几个例子。 JMS 使您能够通过消息收发服务 (有时称为消息中介程序或路由器) 从一个 JMS 客户机向另一个 JMS客户机发送消息。消息是 JMS 中的一种类型对象,由两部分组成: 报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,可以将消息分为几种类型,它们分别携带: 简单文本 (TextMessage)、可序列化的对象 (ObjectMessage)、属性集合 (MapMessage)、字节流 (BytesMessage)、原始值流 (StreamMessage),还有无有效负载的消息 (Message)。 Java消息服务是一个在 Java标准化组织 (JCP) 内开发的标准 (代号JSR 914) 。2001年6月25日,Java消息服务发布JMS 1.0.2b,2002年3月18日Java消息服务发布 1.1,统一了消息域。 JMS有以下元素组成。 JMS提供者 连接面向消息中间件的,JMS接口的一个实现。提供者可以是Java平台的JMS实现,也可以是非Java平台的面向消息中间件的适配器。 JMS客户 生产或消费基于消息的Java的应用程序或对象。 JMS生产者 创建并发送消息的JMS客户。 JMS消费者 接收消息的JMS客户。 JMS消息 包括可以在JMS客户之间传递的数据的对象 JMS队列 一个容纳那些被发送的等待阅读的消息的区域。队列暗示,这些消息将按照顺序发送。一旦一个消息被阅读,该消息将被从队列中移走。 JMS主题 一种支持发送消息给多个订阅者的机制 JMS模型 Java消息服务应用程序结构支持两种模型: ...

2012-04-29 · 1 min · 206 words · -

rt.jar 源码

rt.jar 源码 http://topic.csdn.net/u/20110125/10/06139927-2e44-4c76-b41c-fa7ea3206dd3.html java全部源代码,src.zip中没有的,在openjdk里的源代码加到eclipse里面.. 本来想问的.现在摸索出来了..可以到 http://download.java.net/openjdk/jdk6/下载源码 或者搜索 openjdk jdk6 ..如果你的jdk是jdk 5 或者jdk 7.那就搜索 openjdk jdk5 或者 openjdk jdk7.. 下载完以后解压缩.. eclipse里面选中 windows -preference-java-installed jres-选中jre6(你的可能是jre5 或者jre7)-edit-选中rt.jar-source attachment-external folders.. 选中解压缩的openjdk目录下的子目录 解压所在目录/jdk/src/share/classes/ ..然后重启eclipse.. 这样子原来添加src.zip所不能看的源代码,比如rt.jar下sun.misc包里的class..现在就可以看源代码了..

2012-04-28 · 1 min · 30 words · -

雅各布天梯

雅各布天梯 圣经中有这样一个故事: 雅各布梦见天使上下天堂的梯子是闪闪发光的,后人便把这梦想中的梯子,称之为雅各布天梯。该展品由变压器、羊角电极等部分组成。由变压器提供数十万伏的高压,在羊角电极间击穿空气,形成弓形电弧,产生磁场,使电弧向上运动,其运动过程类似于爬梯。当电弧被拉长到600mm左右,所施加的电压再不能维持产生电弧所需的条件,电弧就消失,此时羊角电极底部又会产生新的电弧,形成周而复始的电弧爬梯现象。 雅各布天梯则展示了电弧产生和消失的过程。二根呈羊角形的管状电极,一极接高压电,另一个接地。当电压升高到5万伏时,管状电极底部产生电弧,电弧逐级激荡而起,如一簇簇圣火似地向上爬升,犹如圣经中的雅各布天梯。 在2-5万伏高压下,两电极最近处的空气首先被击穿,形成大量的正负等离子体,即产生电弧放电。 空气对流加上电动力的驱使,使电弧向上升,随着电弧被拉长,电弧通过的电阻加大,当电流送给电弧的能量小于由弧道向周围空气散出的热量时,电弧就会自行熄灭。 说明: 在高压下,电极间距最小处的空气还会再次被击穿,发生第二次电弧放电,如此周而复始。

2012-04-25 · 1 min · 8 words · -

python mixin

python mixin 什么是Mixin设计模式 mixin设计模式可以看做是多继承的一种。那么首先,咱们谈谈为什么会出现多继承这种语法。 汽车和飞机他们都同属于交通工具,但飞机可以飞行,汽车无法做到,所以,飞行这个行为不能写到交通工具这个类中,如果每一个交通工具各自实现自己的行驶方法,就违背了代码尽可能重用的原则(如果交通工具种类越来越多,就会造成大量代码冗余)。 所以,我们要表示飞行这个行为,就需要进行多继承。但这样,我们就违背了继承关系必须是is-a原则。 在java中,虽然没有多继承,但我们可以通过interface来实现多继承。 在python中,没有interface这一语法,但它本身是支持多继承的。 在使用多继承的时候,很容易就会设计不当,导致继承链混乱,影响mro查找,所以,在编程的时候我们的原则就是,能使用其他方法代替多继承就尽量不适用多继承。 这个时候Mixin设计模式就应运而生,Mixin直译理解就是混入、补充的意思,它是多继承的一种。在多继承中,查找顺序是按mro继承链中的顺序进行的。 这样一来,我们不需要复杂而庞大的继承链,只要选择组合不同的类的功能,就可以快速构造出所需的子类。 2.Mixin设计模式实例 class Vehicle: pass class PlaneMixin: def fly(self): print(“Flying”) class Airplane(Vehicle, PlaneMixin): pass 可以看到,上述代码中,Airplane类实现了多继承,在继承链上,它继承了Vehicle类和PlaneMixin类,这里我们遵循Mixin设计模式的要求,在后面添加上后缀Mixin增强代码的可读性。 上述代码可以这么理解,Airplane只是一个Vehicle类,而不是Plane类,而Mixin后缀,它告诉其他读者,这个类是作为功能添加到子类中的,并不是作为父类,它的作用等同于Java中的interface。 使用Mixin设计模式的原则 在使用Mixin设计模式实现多重继承的时候要特别注意下列几点原则: 首先,Mixin类必须表示某一种功能,而不是某一个物体,这点跟java中的Runnable和Callable是一样的。 其次,它表示的责任必须单一,如果有多个功能,我们应该去实现多个Mixin类。 接下来,Mixin类不依赖于子类的实现,且属于抽象类,本身不能实例化,也不能继承Mixin以外的类。 最后,子类即使没有继承Mixin类,也必须照常工作,只是部分功能缺少无法使用。 Java的接口,只提供了“规格”的多重继承。Mixin类则同时提供了“规格”和“实现”的多重继承,使用上相比接口会更加简单。 补充 在其他框架或者语言中,也有类似的Mixin功能,如Ruby,Django,Vue, React等等。 ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/u011544909/article/details/106890774

2012-04-25 · 1 min · 43 words · -

golang JSON

golang JSON read field from json import "github.com/tidwall/gjson" gjson.Get(jsonStr, "foo.bar.status").String() go json string 格式化 var str bytes.Buffer _ = json.Indent(&str, []byte(data), "", " ") fmt.Println("formated: ", str.String()) time.Time 序列化 https://www.cnblogs.com/chenqionghe/p/13409556.html json.Marshal(struct { *User Password bool `json:"password,omitempty"` }{ User: user, }) json.Marshal() // 序列化 + 格式化 resp2, _ := json.MarshalIndent(s, "", " ") json.Unmarshal() struct json tag https://colobu.com/2017/06/21/json-tricks-in-Go/ type Result struct { Count int `json:"count"` Data MyStruct `json:"data,omitempty"` } func main() { out := shellExec(shell) var result Result json.Unmarshal([]byte(out), &result) fmt.Println(result.Count) } gjson https://github.com/tidwall/gjson ...

2012-04-25 · 3 min · 553 words · -

mind map

mind map https://www.processon.com http://naotu.baidu.com/home plantuml xxx

2012-04-25 · 1 min · 6 words · -

msysgit

msysgit Choose the Run Git from the Windows Command Prompt option Choose the Checkout as-is, commit as-is option

2012-04-25 · 1 min · 18 words · -