November 2009 Archives

Eclipse Galileo 简介

| No TrackBacks

From: developerWorks 中国

Accessibility Tools Framework(ACTF)

"ACTF V0.7 支持以 Eclipse Galileo 作为可访问 Web 应用程序的第一开发环境,这不仅可用于法规遵从性(例如 U.S. Section 508),同样也可以照顾每个人的可用性。"ACTF 项目主管 Chieko Asakawa 说道。

"ACTF 以无缝的可访问性评价特性,例如自动错误检测、为语音访问用户提供可视化以及为低视力人士提供基于图像处理的视图模拟,扩展了 Web、J2EE 和 PHP 透视图。这些特性帮助开发人员快速识别、获悉和改进应用程序的可访问性。"Asakawa 说道。

"这种集成只是第一步。我们的最终目的是让用 Eclipse IDE 生成或在 Eclipse IDE 上开发的任何工件都能为任何人所用。"

C/C++ Development Tooling(CDT)

根据 CDT 项目主管 Doug Schaefer 所说,Debug Services Framework 已经完成了朝向 CDT 的转移,现在成为 CDT 的一个新组件。它包括新的启发式应用,以帮助索引器发现项目中的头文件,并增加了对隐式引用和重载操作符的索引支持。

改进的 Convert to C/C++ Project 成为一种项目类型 -- 例如 Makefiles。CDT 的更新有了新的 Launch Group 配置,可用于一次开始多个会话。Schaefer 指出,CDT 现在包含用于嵌入式开发的新特性、基于 RSE 的远程启动、GCC 跨编译器构建支持以及安装用于 C/C++ SDK 的 tar 文件的 p2 支持。

Data Tools Platform(DTP)

"在我们的 Galileo(V1.7)中,DTP 主要致力于两个方面,"项目主管 Brian Fitzpatrick 说道,"一个方面是增加和增强一些可视化工具,例如 SQL Query Builder(SQB)。我们做了一些简单的可用性增强,使之更易于使用。我们还为 Schema Object 编辑器增加了一个新的框架,希望将来的发行版广泛采纳该框架。为此,我们提供了一些示范性的用于 Sybase ASA 的 Schema Object 编辑器,其他供应商和社区成员有望看到一个用于创建和修改表、索引、存储过程等等的编辑器框架所带来的好处。"Fitzpatrick 说道。

"我们加强的另一个方面是 Connectivity API。实际上,我们现在提供了一些机制,以便简化纯 API 连接或其他连接类型的创建和使用。对于一些主要的适配器,例如 BIRT,这十分重要,这些适配器在幕后将 DTP 功能用于报告生成,因此需要这些机制避免用户离开他们的环境来创建和管理连接。现在,他们可以通过可控制的属性,使用 API 生成连接、使用 SQB 等等。"Fitzpatrick 说道。

"总而言之,我认为我们增加了组件和 API 的稳定性,同时为采纳者和扩展者提供更多的功能,从 2006 年 DTP 出现以来,我们一直都这么做,"他说道。

Eclipse Modeling Framework(EMF)

Modeling 项目由很多子项目组成。EMF 本身包含一个 Core 组件,还有 Teneo 和 CDO 等组件。

项 目主管 Ed Merks 说:"在整个建模领域,最令人感兴趣、最值得期待的三个技术性增强出自 Xtext、CDO Model Repository 和 Teneo;Xtext 是 Textual Modeling Framework(TMF)项目的一个子项目,也是 Galileo 的一个新项目;CDO Model Repository 是 EMF 项目的子项目,它已经有了巨大的改进,自上一个发行版出现以来,已经引起了很多人的兴趣;Teneo 现在提供与 EclipseLink 的集成。"

"我 们还将发布 Acceleo,这是一种新的 OMG 标准模板语言,是 Model to Text(M2T)项目的一部分。GMF 继续作出技术性增强,"Merks 说,"就我直接领导的子项目 EMF Core 而言,由我们最新的提交者 Tom Schindl 带头的数据绑定改进支持绝对值得一提。同样值得注意的是 EObject 的减少内存占用的实现,一些客户机使用它减少了超过 60% 的内存占用。"

Connected Data Objects (CDO)

Connected Data Objects(CDO)项目主管 Elke Stepper 将 CDO 描述为用于分布式共享 EMF 模型的一个框架,注重可伸缩性、事务性和持久性。

"自 上一个发行版出现以来,CDO Model Repository 便引起了很多人的兴趣,并吸引了一些较大的采纳者,包括 NASA 和 Canadian Space Agency and Department of Defense。这个团队已经成长为有 8 名提交者,实现了 130 个增强。其中包括分布式事务、悲观锁和保存点以及用于 EMF 资源的一个可视化文件系统,并且有导入/导出向导、修改提交策略、异步查询框架和储存库中的安全性钩子。凭借局部集合装载、模型使用分析和适应性预取 (adaptive prefetching)等特性,这些功能得到进一步的加强。"Stepper 说。

Eclipse-Databinding

"Eclipse 通过 Galileo 引入所谓的 Properties-API,它为采纳者提供很多新特性,例如对用于域对象和小部件(包括表和树)的嵌套属性的支持。"项目主管 Tom Schindl 说,"此外还包括将可观察到的创建与定义(其属性被监视)解耦、改进的表/树支持、更简单的设置,以及在一个小部件中使用不同的对象类型,并简化了定制的 可观察对象的创建。"

EMF V2.5 为选择 Ecore 作为域模型技术的 Eclipse 数据绑定采纳者以及周边生态系统(包括 CDO、Teneo 和 EMF-Edit)提供一流的支持,Schindl 说。

EMF Compare

"在 Galileo 中,EMF Compare 达到了 V1.0,可以在协作环境中分离和合并模型。它与 Eclipse Team API 紧密集成,并且可以很好地与 CVS、SVN 或 GIT 团队提供者协作。"项目主管 Cedric Brun 说道。

"由于 Acceleo 项目的缘故,'Model To Text' 项目也提供很好的组件,"Brun 说,"这样便提供了一个 MTL(MOF Template Language)实现。现在可以不再担心所有的代码生成模板,并且可以编写标准的模板。而且,该工具提供了代码完成、调试功能和生成预览,从而便于利用模型生成代码。"他说。

"在 '模型到模型转换' 领域,"Brun 说,"ATL 工具已经改进了很多,提供了更好的用户界面和调试辅助。"

Teneo

"在 Galileo V3.5 中,Teneo 增加了一个由两部分组成的 EMF-EclipseLink 集成:一是基于 ecore 模型的标准 JPA orm XML 文件的生成,二是用于将标准 EMF 概念与 EclipseLink 集成的一个运行时层,"项目主管 Martin Taal 说,"此外,Galileo V3.5 中增加了对特定于 Hibernate 的持久性注释的支持和对标准 JPA 注释的完全支持。"

Xtext

"Xtext 是一个面向领域特定语言(DSL)的开发框架,"Xtext 项目主管 Sven Efftinge 说,"只需使用 Xtext 的简单 EBNF 语法描述 DSL,生成器就将创建一个解析器、一个 AST 元模型(使用 EMF 实现)以及一个功能丰富的 Eclipse 文本编辑器。"

"该框架与 Eclipse Modeling 中的技术(例如 EMF、GMF、M2T 和 EMFT 的一部分)集成。使用 Xtext 的开发经过了优化,从而可以缩短周转期,因此将新特性添加到已有 DSL 中只需要几分钟的时间。甚至可以实现更高级的编程语言。"Efftinge 说道。

Eclipse Packaging Project

"大多数人都不知道,正是 Eclipse Packaging Project (EPP) 创建了每天由数千名用户从 Eclipse 下载页面下载的所有那些包,"项目主管 Markus Knauer 说,"在 Galileo 中,我们提供了所有包的更新版本,并且还提供了两个新的、非常令人兴奋的包,很多开发人员都对这两个包感兴趣:一个是新的 Pulsar 包,可用于开发我们每天都在使用的移动设备(例如移动电话)的应用程序;另一个新包是为 PHP 开发人员创建的,我可以肯定,它将成为下载次数最多的包之一。"他说道。

"但是,今年最主要的变化是使用了全新的构建基础设施。我们现在都是借助 p2 技术构建所有的包。这不仅使得这些包完全遵从 p2,而且让我们有更大的灵活性来定制这些包。"

Eclipse Platform

"对 于我来说,Eclipse Galileo 中最令人激动的事情是将 SWT 移植到 Mac Cocoa,"项目主管 Steve Northover 说,"Cocoa 可以创建未来的 Macintosh 用户界面,Eclipse 将出现在其中。这种移植在社区(包括 Adobe 和 IBM®)的帮助下很快会聚集起来。" Northover 说道。

Equinox

"Galileo 中的 Equinox 令我们非常兴奋,"项目主管 Jeff McAffer 说,"我们实现了最新的 OSGi 规范,包括很多增强,在更大范围的现实场景(分布式系统和企业系统)中增强 OSGi 的威力。Equinox OSGi Declaratives Services 实现已经被更新至最新的规范,并且由 PDE 定制而成,现在被包含在标准 Eclipse 下载中。"McAffer 说道。

"我 们的提供(provisioning)平台 p2 在健壮性、性能和灵活性方面有了重大的提升。在使用 p2 交付高级软件解决方案方面,可以看到很大的进步。虽然从技术上讲,Equinox Aspects 项目不是 Galileo 的一部分,但是它在逐渐完善,并且被很多项目采纳,其中就包括 AOP 社区本身。更为普遍的是,EclipseRT(即 Eclipse 在运行时环境中的使用)正在崭露头角,在 Galileo 中有很多项目提供特定于运行时的功能。"McAffer 说道。

Graphical Modeling Framework(GMF)

"除 了对运行时组件做出的大量 bug 修复和性能提升外,这个发行版中的生成工具也有了显著的变化,"项目主管 Richard Gronback 说,"特别是,我们的 Xpand 代码生成器经过了重构,现在使用 Object Constraint Language(OCL)和 QVT Operational Mapping Language(OML),而不是 Xtend 和 Xpand 中原有的底层表达语言。这样便改进了我们的模型-文本转换功能,并且将 QVT 作为映射与生成器模型之间的转换的一个选项,而之前这是在 Java 代码中完成的,"他说。

Java Workflow Tooling(JWT)

"Java Workflow Tooling (JWT) 将开放的业务流程设计和开发带入 Eclipse 平台,"项目主管 Florian Lautenbacher 说,"Business Process Management(BPM)处于业务、中间件和集成的交叉口,所以它不应该固定它所扮演的角色。这就是为什么使用 JWT 建模的流程可以符合分析师的想法,存放开发人员加入的任何实现信息,并被部署到选择的运行时平台上。

"这 是完全可能的,因为有一个灵活的框架,社区和供应商可以在可扩展的视图、模型和转换的基础上进行构建。JWT 附带了一些内置的扩展,例如 UML Activity Diagram 或 Event-driven Process Chains(EPC)视图、BPMN 互操作性、代码生成(例如 XPDL、AgilPro 中的 WSBPEL-代码,以及 HTML 文档)。实际上已经有一些集成 JWT 的解决方案,例如 OW2 联盟的以 SOA 为重心的 Scarbo 或 SourceForge 中的 AgilPro。"Lautenbacher 说道。

对于 Galileo 而言,重点是增加与 Bonita 等常见业务流程运行时的兼容性,并且与 SOA Tools Platform(STP)项目(尤其是 BPMN、SCA 和 IM)协作,集成面向服务的特性,Lautenbacher 说道。

Java Development Tools(JDT)

"编译器提供一些新的诊断(例如发现死锁),并且每个被报告的问题都附有相应的快速修复以消除问题,项目主管 Dani Megert 说道。

"这个 Java 编辑器现在提供构造函数完成功能,并允许直接跳到一个方法的实现中。格式化程序现在可以保留已有的换行,最后,Java 比较编辑器提供了很多可在普通 Java 编辑器中找到的特性 -- 例如内容辅助。"Megert 说道。

Java Emitter Templates(M2T JET)

JET2 是用于 Eclipse 环境的一个模板引擎。

"在 Galileo 中,一个关键内容就是模板的可读性,"项目主管 Paul Elder 说,"基本上,模板就是静态文本与用于定制该文本的标记的混合物。有了好的模板,就可以很快知道文本结构以及标记如何影响文本结构。但是,如果添加太多的标记,模板会变得难以辨认。"

"在 Galileo 中,JET2 引入了很多创新,降低了标记对文本的干扰,"Elder 说,"首先,标记现在更加紧凑。其次,引入了一些新的标记,这些标记简洁地描述常见的生成模式。我所喜欢的新的 c:deepIterate 就属于这种标记。通过它可以简洁地描述从嵌套或递归数据生成的文本。而在之前的发行版中,这需要两个模板,递归模板以及大量的标记 -- 这显然不具有可读性。"

Memory Analyzer

"Galileo 是第一个包含 Memory Analyzer 的同步发行版系列。"项目主管 Andreas Buchen 说。

"感 觉太棒了!"Buchen 说,"我们增加了一些新特性。首先,我们增加了对来自 IBM 家族的 Virtual Machines 的堆转储(heap dump)的支持,包括 PHD 和系统转储。其他增强包括对发生转储时正在运行的线程的栈跟踪、用于查看 OSGi 运行时完整状态的 Equinox bundle 浏览器以及一些小修改,例如根据转储重新创建和显示 SWT 图标。"

Mobile Tools for Java(MTJ)

"这是 MTJ Project 第一次作为 Eclipse 的一部分发行,"项目主管 Christian Kurzke 说:"在去年,我们将两个面向移动开发人员的 Eclipse 项目(EclipseME 和 MTJ)合并为一个联合开发:即 '新的' Eclipse MTJ。"

"在 Galileo 中,我们还创建了一个 Pre-Integrated Eclipse 下载包(即 Pulsar Package),目标直指 Mobile Application Developers。在 Galileo 中,MTJ Project 的版本达到了 1.0。这个发行版的主要目的是定义一个 MTJ API。这个 API 让任何第三方工具开发人员都可以扩展 MTJ,以支持他们自己的平台以及支持特定于 SDK 的特性。"

Mylyn

" Mylyn V3.2 中最令人兴奋的是用于发现和安装 Mylyn Connectors 的类似 App Store 的新 UI。在这个发行版中,Mylyn 支持 Eclipse 用户当中常见的大多数变更管理解决方案,并且只需通过几次点击就可以将这些集成安装到工作区。" Mylyn 项目主管兼 Tasktop Technologies CEO Mik Kersten 说道。

"对于日常工作方面,我喜欢的改进是新的任务编辑器布局。在新的任务编辑器布局中,可以很快地浏览任务和对任务分类,其速度比起浏览电子邮件有过之而无不及。"Kersten 说道。

PHP Development Tools(PDT)

"Eclipse PHP Development Tools (PDT) 为开发 PHP 脚本提供基于 Eclipse 平台的开发环境。该项目包含开发 PHP 所需的开发组件,并具有可扩展性。现在,Eclipse PDT 已成为 PHP 开发的事实标准。"项目主管 Roy Ganor 说道。

"遵从如今的 Web 标准的 Web 开发人员可能是 Eclipse PDT 最大的受众,"Ganor 说,"团队主管和产品经理也会发现,PDT 对于使用 Eclipse 和 PHP 原型化下一代产品十分有用。"

"当遵从业界标准时,开源项目的威力便显露出来。这正是 Eclipse PDT 决定加入 Galileo 发行版系列的原因,因为它提供一个公认的框架,承诺将质量和成熟性提高到一定的水平。此外,我们看到 Eclipse PDT 的普及度和知名度有了很大的不同。我迫不及待地想看到下一个发行版!"

Eclipse PDT 始于由 Zend Technologies 和 IBM 在大约 3 年前发起的一个计划。"我们预测 PHP 开发人员将从 Eclipse 及 Eclipse 生态系统中受益,尤其是当他们在团队中工作并且正在实践敏捷开发方法学时,更是如此。"Ganor 说道。

关 于 PDT V2.1 有两点新的令人惊奇的重要声明,他说:"第一,这是 Eclipse PHP 风格的首个发行版,Eclipse PHP 风格基于 Eclipse 平台和 Eclipse PDT 项目。如果之前下载过 Java 风格的 Eclipse 并添加了 PHP 功能,那么现在可以直接从 Eclipse 主下载站点下载一个 PHP 包。第二点是关于 PHP 5.3 的。经过数年的开发,PHP 团队将发布下一代的 PHP 引擎,其中包含很多新的语言特性,例如名称空间和闭包。 好消息是,Eclipse PDT 支持这些新特性。这表明这两个社区之间的亲密关系。"他说道。

"Eclipse PDT 团队应该一如既往地追求更好的质量,并且支持标准。"Ganor 说,"因此,我们在接下来的维护版本中将注重稳定性和可用性。我们还计划为世界各地的 PHP 框架团队开放越来越多的扩展,从而可以使 PDT 成为他们的开发人员的目标环境。"

Rich Ajax Platform(RAP)

RAP V1.2 使得使用 RCP 和 RAP 同源(single-source)桌面和 Web 应用程序变得更容易。"我们着重在 RAP 中提供流行的 API,并与其他一些 Eclipse 项目协作,开始代码同源化。"项目主管 Jochen Krause 说,"例如,对于 Eclipse 内存分析器,RCP 与 RAP 之间的代码重用率达到 98.4%。通过一些关于如何组织同源化项目的 Webcast 和指南,可以知道如何有效地将 Web UI 添加到 RCP 应用程序。

"新的 Web 感观(开箱即用式)和新的实用特性使 RAP 应用程序对终端用户更具吸引力。客户端和服务器端的性能提升有助于提高 RAP 应用程序的速度,并且可以伸缩至每个服务器中的数百个用户。"

SCA Tools

"自 2008 Ganymede 发行版以来,SCA Tools 项目已经有了很多新的开发。"项目主管 Stephane Drapeau 说,"我们增加了一个 XML 编辑器,使编辑和更新 SCA 标准装配(assembly)文件变得非常容易。对于 Java 开发人员来说,现在可以创建一个 SCA 装配定义,然后从它生成 Java 代码。而且,如果要从已有的 Java 代码开始,我们增加了一个专门的内省器(introspector),它将调查代码,并自动产生 SCA 装配。创建 Java SCA 项目后,便可以使用 Eclipse 提供的强大工具运行和调试它。我们还确保您创建的 SCA 工件经过适当的验证,帮助您尽早发现错误。我们甚至还花时间更新了图形,使我们有一个更美观的 SCA Composite Designer。"Drapeau 说道。

"对 于我来说,最令人兴奋的是我们为核心 SCA 模型增加了可扩展性,便于将额外的功能编写到这些工具中。该模型的核心包含 SCA 标准说明,并且创建了一些不同的扩展,以支持关键的 Open Source SCA 运行时 -- Apache Tuscany V1.4 和 Frascati V0.5。通过使用这些扩展机制,将新概念添加到 SCA 中以及扩展这些工具就变得更加容易。"Drapeau 说道。

SOA Tools

"Galileo 见证了 SOA Tools Project 的成熟 -- BPMN Modeler 和 SCA Tools 等子项目现在具有非常高的品质,并为 SOA 开发人员所使用的工具做出重大贡献。"项目主管 Oisin Hurley 说道。

"SCA Tools 子项目在去年有了较大的进展,完成了到 2.0 的重大版本更新。Policy Editor 的扩展现在意味着,要生成 WS-Policy 文档的开发人员可以选择以一种可定制的方式创建起点声明,然后,这些声明可以被动态地转换,以便进行验证。我们的 SOA Model 继续发展,并有了新的从标准模型到 SCA 的转换。将来也有一些令人兴奋的事 -- 我们正在寻求扩充 SOA Tools Project,引入一些新的子项目。"Hurley 说道。

Swordfish

"Swordfish 随 Galileo 一起迎来它今年的首次亮相,所以我们对此感到非常兴奋!"项目主管 Oliver Wolf 说道。

"Swordfish 项目的目标是提供可扩展的 SOA 框架,该框架基于已证明的 Eclipse Equinox 运行时技术。"Wold 说,"该框架有一些附加的开源组件作为补充,例如服务注册中心、消息传递系统、流程引擎等,从而形成一个综合性开源 SOA 运行时环境,该环境同时基于既有的和新兴的开放标准。我们在 Galileo 中交付 0.9.0 发行版,其中包括一些工具,以方便用代码优先或 WSDL 优先的方法创建服务。"

Target Management

"我个人对于两项功能感到很兴奋,一是比较/同步本地和远程文件系统,二是使用到同一个主机的多个不同的连接。这两项功能都是我们社区期待已久的。"项目主管 Martin Oberhuber 说。

不 过,新的 "Show in Remote Systems View" 动作也很方便,即使只在本地系统上使用也不错 -- 因为通过 RSE 可以方便地浏览 TAR、TGZ、ZIP 和 JAR 归档文件。"Oberhuber 说,"需要启动远程系统上的程序的人将会喜欢在启动时执行任意远程命令的功能。现在已经为 CDT 程序实现了这项功能,当设置了一个 dummy CDT 项目时,这项功能还可以用于任何类型的远程应用程序。"他说道。

Test and Performance Tools Platform Project(TPTP)

Galileo 中的 Eclipse Test and Performance Tools Platform (TPTP V 4.6)着重作了优化,提高了稳定性,并改进了 Ganymede 的文档编制,项目主管 Oliver Cole 说。

"对 于 Galileo, 以及将来的 Helios,"Cole 说,"TPTP 的目标是零缺陷。虽然听起来有些乏味,但这实际上是一个有趣的实验。一个零缺陷的平台(例如 TPTP)意味着什么?无论是对于社区中的终端用户,还是对于消费产品,一个零缺陷的平台是值得依靠的。它的价值比包含 bug 的平台要高得多。那么,以前是否有过零缺陷的软件?"

"零 bug 意味着一切都按 '伟大' 产品的标准来完成。例如,文本编制不够精细,工作流较为粗糙,外观有些瑕疵,这些 bug 都要修复。TPTP 中的大量代码所固有的价值得以体现,因为它是有效的。"

特别是,有一项被称作 Profiler of the Gods(POG)的工作致力于修复所有的概要分析器 bug,让社区有一个世界一流的 Java 概要分析器,他说道。

Tools for mobile Linux

"对于寻求将他们的创新引入生活的开发人员来说,这是一个令人激动的时刻,因为移动应用程序开发在整个移动行业中大放异彩。" Motorola Inc 高级产品经理兼 Eclipse Tools for mobile Linux®(TmL)项目主管 Eric Cloninger 这样说道。

"在 即将到来的 Galileo Simultaneous Release 中,我们将使开发人员更容易创建、调试和诊断移动电话和模拟器上的应用程序。这个流行的移动应用程序开发平台将使开发人员可以一直使用同一个熟悉的开发环 境,同时又能创建以多种不同设备为目标的移动应用程序。Motorola 非常乐意与业界人士合作,为开发人员提供适当的工具,帮助他们将创新引入到生活当中。"Cloninger 说道。

Web Tools Platform(WTP)

"Web Tools Platform(WTP)始于 5 年前,最初是为了将 Eclipse 延伸到 Web 应用程序领域。从那以后,它成为了最流行的 Eclipse 项目,为 Web 应用程序开发人员提供了丰富的工具,并且为工具供应商提供了一组平台应用程序编程接口(API)。"项目主管 David Williams 说道。

WTP Galileo 包括一套全新的 XSL 工具,这套工具提供 XSL 编辑和集成了的调试功能,对 Ganymede 中引入的 JavaScript Development Tools 作了大量的优化,并对已有的 XML、XML Schema、JSP、HTML、CSS 和 DTD 支持作了改进和补充。

"Dali Java Persistence Tools 增加了一个新的、改进的 Entity Generation 向导,在生成实体之前,可通过该向导对实体进行更大程度的定制。Dali 还为 EclipseLink JPA 增加了高级的工具支持,并且还提供对从 JAR 映射二进制内容、项目类路径、插件的广泛支持,大大提高了工具的灵活性。"Williams 说道。

Trading System

| No TrackBacks

From: 程式交易聚寶盆


列舉國際的交易平台:
C#目前沒有太多公開源碼的交易平台,但因為是目前微軟主推的開發語言,且卷商開發的報價元件和下單元件都是Window技術,所以整合容易。

    TickZoom
    http://www.tickzoom.org/
    Engine Features
      * All short term bars update for every tick change.
      o That includes second bars, minute bars, hour bars, tick bars, range bars, and volume bars.
      * Longer term bars update every minute.
      o Those include session, day, week, month and year bars.
      * The engine can process an unlimited number of ticks due to streaming technology.
      * TickZOOM consumes less than 100 megabytes of memory.
      * Run a portfolio of custom strategies against the same instrument.
      * TickZOOM offers total time frame freedom.
      o Use up to 64 different bar intervals in any combination within the same strategy.
      o That includes range, volume, change, tick, point and figure, second, minute, hour, day, session, week, month, and year bars.
      * Strategies that you write can run without change during any of the engine operating modes.
      * Control of all features including charting have programmatic access.
      * TickZOOM engine operating modes:
      o Historical test
      o Market replay
      + Choose any per bar or per tick acceleration speed
      o Optimization
      + Standard exhaustive optimization
      + Genetic optimization
      + Create your own
      o Real time mode.
      + Runs with real time charts so can see the engine working
      + Test against your demo account
      + Or run live account to start making money!
      o Algorithmic Trading mode
      + Runs as a Windows Service without GUI or charts.
      + Writes performance stats to HTML format and chart image to file.
      + Stays connected 24/7, hands free
    Charting
      * Comes with a reference GUI and charting but you can make your own.
    Algorithmic Trading Server
      * Runs the engine as a Windows Service for hands-free algorithm trading.
    Execution & Quote Server
      * Executes trades ordered by the algorithm server.
      * Collects broker tick data to file and feeds it to the algorithmic server in TickZOOM format.

    Custom Strategies
      * Easily incorporate built-in or customized money management and exit strategies.
      * It reports all major industry statistics on system performance.

    Optimize Strategies
      * Use dual or quad core during optimization for 2 X or 4 X speed.
      * Genetic Algorithm optimization included.

    EasyLanguage
      * Custom strategies benefit from EasyLanguage-like features built-in:
      o This makes it relatively simple to convert existing EasyLanguage code.
      o And makes it much easier to create new custom strategies.

    AmiBroker
      * Custom strategies benefit from AmiBroker-style features:
      o There's a straightforward procedure to convert from AmiBroker code.
    Software Architecture
      * It's a clean modular interface and design so you can extend, add-on, and make plug-ins.
    Quality and Testing
      * Uses automated regression testing for greater reliability and fewer bugs.

    TickZoom的功能強大,其實細看,蠻適合計量回測和自動交易,也少了很多不必要的介面,同時也提供EasyLanguage的轉換。

    TradeLink
    http://code.google.com/p/tradelink/
    * Re-trade the day just ended
    * Automate your trading
    * Back-test strategies at ~100,000 ticks/sec
    * Alert you to market behavior
    * Build your dream trading platform, one tool at a time.
    是不是可以把TradeLink和TickZoom兩個平台整合成台灣的開放源碼主要交易平台 :P

Java是最多公開源碼交易平台,但因為卷商開發的報價元件和下單元件都是Window技術,所以整合上是一個難題。

Marketcetera Trading Platform
由Shasta創投出4百萬美金成立,功能強且複雜,可以使用Fix Protocol,也可以處理演算法交易。這個軟體感覺上是要瓜分商用的演算法交易市場。目標客群是鎖定法人和避險基金等。

EclipseTrade
功能完整,接近卷商的看盤軟體,感覺是Java交易平台裡,人氣比較旺的,軟體架構是由Eclipse Framework開發,易於版本控制、修改等。

其他的交易平台
資料來源:http://groups.google.com/group/JavaTraders/web/-2
AIOTrade
http://sourceforge.net/projects/humaitrader
http://blogtrader.org/
AIOTrade (formerly Humai Trader Platform) is a free, open source stock technical analysis platform built on pure java. Its pluggable architecture is also ideal for custom features extending, such as indicators and charts. It Requires JRE 1.5.0+.

Auge
http://sourceforge.net/projects/auge
http://auge.sourceforge.net/
Auge is an easy-to-use financial portfolio management application. Auge will help you monitor and analyze your stock and mutual fund positions, providing powerful insight into your entire investment portfolio.

Data Visualizer
http://sourceforge.net/projects/dataviews
http://dataviews.sourceforge.net/
Modular environment for graphical visualization of stock market type data

CCAPI2
http://www.activestocks.eu/?q=node/1
http://www.activestocks.eu/
The open source finance library on the net.
A java library for automated stock trading, sub fields of financial engineering and automated financial instrument analysis. A java financial library. The CCAPI It is also a algorithm trading application framework.CCAPI is the premium open source java library for developing stock exchange related applications on the net.Various common indicators, methods for creating charts and direct trade interfaces to selected brokers are available for your fingertips.

EclipseTrade
http://sourceforge.net/projects/eclipsetrader/
http://eclipsetrader.sourceforge.net/
Stock exchange analysis system, featuring shares pricing watch, intraday and history charts with technical analysis indicators, level II/market depth view, news watching, automated trading systems, integrated trading. Based on Eclipse RCP framework.

JSystemTrader
http://www.myjavaserver.com/~nonlinear/ ... rader.html
JSystemTrader is a fully automated trading system (ATS) that can trade various types of market securities during the trading day without user monitoring.
All aspects of trading, such as obtaining historical and real time quotes, analyzing price patterns, making trading decisions, placing orders, monitoring order executions, and controlling the risk are automated according to the user preferences.
The central idea behind JSystemTrader is to completely remove the emotions from trading, so that the trading system can systematically and consistently follow a predefined set of rules.

Market Analysis System
http://sourceforge.net/projects/eiffel-mas
http://eiffel-mas.sourceforge.net/
System for analysis of financial markets using technical analysis. Includes facilities for stock charting and futures charting, as well as automated generation of trading signals based on user-selected criteria. Operates on both daily and intraday data.

Marketcetera
http://trac.marketcetera.org/
http://www.marketcetera.com/
Marketcetera LLC is building a new software platform committed to providing fast, flexible and reliable securities trading tools to financial services professionals. Our mission is to make world-class order-management and risk-management software available and affordable to individuals and to institutions of all sizes. Marketcetera focuses on building the key trading functions that are common to all organizations, thus freeing our clients to concentrate on proprietary trading algorithms and other specialized software that provide a competitive advantage.

Matrex
http://sourceforge.net/projects/matrex/
http://matrex.sourceforge.net/
Use Matrex, the un-spreadsheet, instead of spreadsheets when working with vectors (e.g. database data, charts) and matrices. The perfect desktop tool for mathematical, statistical models and complex calculations. Adapters to matlab, scilab, octave, R.

Merchant of Venice
http://sourceforge.net/projects/mov
http://mov.sourceforge.net/
Venice is a stock market trading programme that supports portfolio management, charting, technical analysis, paper trading and genetic programming. Venice runs in a graphical user interface with online help and has full documentation.

Open Java Trading System
http://sourceforge.net/projects/ojts/
http://ojts.sourceforge.net/
The Open Java Trading System (OJTS) is meant to be a common infrastructure to develop (stock) trading systems. There are four parts: gathering of raw data over the internet, recognition of trading signals, a visualisation module and trading with banks.

Oropuro trading system
http://sourceforge.net/projects/oropuro
http://www.oropuro.org
Complete technical analysis & trading system, full set of features: retrieve, analyze EOD stocks data; manage multiple portfolios; technical analysis & graphical rendering; neural networks for generation of trading signals; support trader community,

SFL Java Trading System Enviroment
http://sourceforge.net/projects/sfljtse
http://www.sflweb.org/index.php?blog=sfljtse
The SFL Java Trading System Enviroment is a java application built on KISS principle (Keep It Simple,Stupid) and its aim is to provide a fast and platform indipendent infrastructure to develop and execute trading systems.

TrueTrade
http://code.google.com/p/truetrade/
http://groups.google.com/group/TrueTrade-Gen
http://groups.google.com/group/TrueTrade-Dev
TrueTrade is a framework for developing, testing and running automatic trading systems. It is intended to provide support for a wide range of orders, financial instruments and time scales. It provides tooling for backtesting the strategy against historical data, and a separate tool for running the strategies in live mode. Strategies currently require some Java coding experience, though this may change at a later date.
It is currently in pre-alpha mode and should not be used against a live trading account.

Ubuntu High Availability

| No TrackBacks

From : Marc's Linux howtos

In this howto we will build a load balanced and high availability web cluster on 2 real servers with Xen, hearbeat and ldirectord. The cluster will do http, mail, DNS, MySQL database and will be completely monitored. This is currently used on a production server with a couple of websites.

Introduction

The goal of this tutorial is to achieve load balancing & high availability with less real servers as possible and of course, with open-source software. More servers means more hardware & hosting cost.

Most of the information you will find here has been copy / pasted from a dozen howtos, many of them from howtoforge.com, but some important details have been modified to make this possible and to put everything together.

Here is a quick list of services & applications that will be installed :

* Apache
* MySQL + phpmyadmin
* Postfix (SMTP) with web based users configuration and Spamassassin
* Courier (IMAP & POP) and squirrelmail
* Bind (DNS server)
* Munin and monit for web based monitoring
* Homemade scripts for monitoring

What you need :

2 servers with dual lan, at least 7 ip. IPs will be used like this :

* dom01.example.com : 192.168.1.100
* dom02.example.com : 192.168.1.101
* lb1.example.com : 192.168.1.102
* lb2.example.com : 192.168.1.103
* web1.example.com : 192.168.1.104
* web2.example.com : 192.168.1.105
* example.com : 192.168.1.106
* yousite.com (optionnal) : 192.168.1.107

DomO will be separated from load balancers and web servers. I didnt try it but I believe it would be possible to put load balancers on Dom0.

I suggest at least 2GB ram and RAID 1 or 10 hard drives for a production server.

Limitations

1. This worked for me. Doesnt mean it will work for you but rest assured that the howto is 100% tested to work on a production and test server !
2. This setup is scalable over 2 servers but you will need to find another way for MySQL replication if you do so.
3. No control panel such as ISPConfig, CPanel, etc...
4. Some websites can break MySQL Master to Master replication. It happend to me with Drupal but I fixed it either by disabling cache or by setting a minimum cache lifetime. Please read this before you go further :


A: MySQL replication currently does not support any locking protocol between master and slave to guarantee the atomicity of a distributed (cross-server) update. In other words, it is possible for client A to make an update to co-master 1, and in the meantime, before it propagates to co-master 2, client B could make an update to co-master 2 that makes the update of client A work differently than it did on co-master 1. Thus, when the update of client A makes it to co-master 2, it produces tables that are different from what you have on co-master 1, even after all the updates from co-master 2 have also propagated. This means that you should not chain two servers together in a two-way replication relationship unless you are sure that your updates can safely happen in any order, or unless you take care of mis-ordered updates somehow in the client code.


1. Installing Ubuntu

Do a basic install of Ubuntu 8.04 LTS server edition.

If you want to install with software RAID 1 please read this howto I wrote :

Install Ubuntu 8.04 with software raid 1


2. Installing Xen

You can run Xen from image files or from dedicated partition. Both have pros and cons.

From image files disk I/O is slower but its easier to do backups and to manage. Its the other way around when working on a partition.

What I suggest doing is starting with image file and to end with partition when your setup is finished. This way you can do backups of your image files and rollback if necessary when testing.

To install on image files please refer to this great tutorial from the howto master Falko :

Installing Xen On An Ubuntu 8.04 (Hardy Heron) Server From The Ubuntu Repositories

To install directly on a partition (my modified version of Falko's howto) :

High Performance XEN On An Ubuntu Hardy Heron (8.04) Server System AMD64 or i386

You need to do 2 Xen domain on each server (dom01 and dom02 are Dom0 or VM controller) :

***On server 1 dom01.example.com ip : 192.168.1.100***

* lb1.example.com (256MB RAM - 5GB HD is enough)
* ip : 192.168.1.102
* web1.example.com (the more RAM the better, keep 512MB for Dom0)
* ip : 192.168.1.104

***On server 2 dom02.example.com ip : 192.168.1.101***

* lb2.example.com (256MB RAM - 5GB HD is enough)
* ip : 192.168.1.103
* web2.example.com (the more RAM the better, keep 512MB for Dom0)
* ip : 192.168.1.105


3. Creating Xen Bridges for local data transfers (OPTIONAL)

By default only one network card is enabled on virtual machine with Xen. For local transfer such as rsync, MySQL replication and backups I use a gigabit crossover cable between the 2 servers. Its not necessary but it will save bandwidth costs and replication will be faster.

Please refer to this howto to create xen bridge :

Creating new xen bridges on Ubuntu 8.04

In this howto ip used on the second network card (crossover) will be the following :

* dom01.example.com : 192.168.0.100
* dom02.example.com : 192.168.0.101
* lb1.example.com : 192.168.0.102
* lb2.example.com : 192.168.0.103
* web1.example.com : 192.168.0.104
* web2.example.com : 192.168.0.105


4. Node preparation (dom01, dom02, lb1, lb2, web1, web2)


4.1 Installing openssh server and VIM

Run :

sudo su
apt-get install vim ssh openssh-server


4.2 Updating the repositories

mv /etc/apt/sources.list /etc/apt/sources.list.bak
vi /etc/apt/sources.list

make source.list look like this (here I use mirrors.portafixe.com in Canada, use the closest one from your location ):

#
# deb cdrom:[Ubuntu-Server 8.04 _Hardy Heron_ - Release i386 (20080423.2)]/ hardy main restricted
#deb cdrom:[Ubuntu-Server 8.04 _Hardy Heron_ - Release i386 (20080423.2)]/ hardy main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://de.archive.ubuntu.com/ubuntu/ hardy main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ hardy-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://de.archive.ubuntu.com/ubuntu/ hardy universe
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy universe
deb http://de.archive.ubuntu.com/ubuntu/ hardy-updates universe
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://de.archive.ubuntu.com/ubuntu/ hardy multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy multiverse
deb http://de.archive.ubuntu.com/ubuntu/ hardy-updates multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy-updates multiverse
## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://de.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository. This software is not part of Ubuntu, but is
## offered by Canonical and the respective vendors as a service to Ubuntu
## users.
# deb http://archive.canonical.com/ubuntu hardy partner
# deb-src http://archive.canonical.com/ubuntu hardy partner
deb http://security.ubuntu.com/ubuntu hardy-security main restricted
deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted
deb http://security.ubuntu.com/ubuntu hardy-security universe
deb-src http://security.ubuntu.com/ubuntu hardy-security universe
deb http://security.ubuntu.com/ubuntu hardy-security multiverse
deb-src http://security.ubuntu.com/ubuntu hardy-security multiverse

now do :

apt-get update
apt-get upgrade


4.3 Modifications (dom01, dom02, lb1, lb2, web1, web2)

/bin/sh is a symlink to /bin/dash, however we need /bin/bash, not /bin/dash. Therefore we do this:

ln -sf /bin/bash /bin/sh

We will disable AppArmor (on dom01 and dom02) by doing the following :

/etc/init.d/apparmor stop
update-rc.d -f apparmor remove


5. Network configuration (dom01, dom02, lb1, lb2, web1, web2)


5.1 Setting up IPs

To edit network configuration under ubuntu do :

vi /etc/network/interfaces

We will now do each network configuration one by one. I assume you use 2 network card, eth0 is the one connected to the internet and eth1 the one with the crossover cable. I wont write the config file individually, only for dom01.example.com, please modify accordingly to this list :

dom01.example.com
eth0 : 192.168.1.100
eth1 : 192.168.0.100

dom02.example.com
eth0 : 192.168.1.101
eth1 : 192.168.0.101

lb1.example.com
eth0 : 192.168.1.102
eth1 : 192.168.0.102

lb2.example.com
eth0 : 192.168.1.103
eth1 : 192.168.0.103

web1.example.com
eth0 : 192.168.1.104
eth1 : 192.168.0.104

web2.example.com
eth0 : 192.168.1.105
eth1 : 192.168.0.105

***Example network configuration of dom01.example.com***

Make the file /etc/network/interfaces look like this :

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface connected to the internet
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# The secondary network interface connected by a crossover cable on the other server
auto eth1
iface eth1 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255

Now save the file and do :

/etc/init.d/networking restart


5.2 Hostname

vi /etc/hosts

and make it look like this :

***On dom01.example.com***

127.0.0.1 localhost.localdomain localhost
127.0.1.1 dom01.example.com dom01

192.168.1.101 dom02.example.com dom02
192.168.1.102 lb1.example.com lb1
192.168.1.103 lb2.example.com lb2
192.168.1.104 web1.example.com web1
192.168.1.105 web2.example.com web2
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

echo dom01.example.com > /etc/hostname
/etc/init.d/hostname.sh start

***On dom02.example.com***

127.0.0.1 localhost.localdomain localhost
127.0.1.1 dom02.example.com dom02

192.168.1.100 dom01.example.com dom01
192.168.1.102 lb1.example.com lb1
192.168.1.103 lb2.example.com lb2
192.168.1.104 web1.example.com web1
192.168.1.105 web2.example.com web2
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

echo dom02.example.com > /etc/hostname
/etc/init.d/hostname.sh start

***On lb1.example.com***

127.0.0.1 localhost.localdomain localhost
127.0.1.1 lb1.example.com lb1

192.168.1.100 dom01.example.com dom01
192.168.1.101 dom02.example.com dom02
192.168.1.103 lb2.example.com lb2
192.168.1.104 web1.example.com web1
192.168.1.105 web2.example.com web2
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

echo lb1.example.com > /etc/hostname
/etc/init.d/hostname.sh start

***On lb2.example.com***

127.0.0.1 localhost.localdomain localhost
127.0.1.1 lb2.example.com lb2

192.168.1.100 dom01.example.com dom01
192.168.1.101 dom02.example.com dom02
192.168.1.102 lb1.example.com lb1
192.168.1.104 web1.example.com web1
192.168.1.105 web2.example.com web2
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

echo lb2.example.com > /etc/hostname
/etc/init.d/hostname.sh start

***On web1.example.com***

127.0.0.1 localhost.localdomain localhost
127.0.1.1 web1.example.com web1

192.168.1.100 dom01.example.com dom01
192.168.1.101 dom02.example.com dom02
192.168.1.102 lb1.example.com lb1
192.168.1.103 lb2.example.com lb2
192.168.1.105 web2.example.com web2
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

echo web1.example.com > /etc/hostname
/etc/init.d/hostname.sh start

***On web2.example.com***

127.0.0.1 localhost.localdomain localhost
127.0.1.1 web2.example.com web2

192.168.1.100 dom01.example.com dom01
192.168.1.101 dom02.example.com dom02
192.168.1.102 lb1.example.com lb1
192.168.1.103 lb2.example.com lb2
192.168.1.104 web1.example.com web1
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

echo web2.example.com > /etc/hostname
/etc/init.d/hostname.sh start


6. Software installation (dom01, dom02, lb1, lb2, web1, web2)

Run :

apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential

March 2010

Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Archives

Powered by Movable Type 4.34-en

Recent Comments

  • panandy: 3Q read more
  • Anonymous: philipz大 沒有邀請碼,無法註冊,致無法下載工具 請問有何方法可以解決? 感恩 read more
  • philipz: harushard, It is your java code problem. Check it and read more
  • harushard: java.lang.NoClassDefFoundError: Could not initialize class examples.ExamplesMCRFactory could you explain why read more
  • philipz: IM已經是無解了,建議可以用Plurk Api試看看。 read more
  • ann: hi,請問以上問題解決了沒?可以分享一下嗎? read more
  • Anonymous: 邀請碼沒有~無法下載工具~~怎麼辦 read more
  • Melody: test read more
  • philipz: Ginger: 您好,請您在我的噗浪上留言即可一起討論。 read more
  • Ginger: 版大您好: 在看過您做的期貨即時訊息BOT後覺得很不錯,自己也有一些想法不知能否與您交流與協助呢? 若您覺得ok的話,可以email或是噗浪(ID: king0355)與我聯繫。感謝 : ) read more

About this Archive

This page is an archive of entries from November 2009 listed from newest to oldest.

September 2009 is the previous archive.

December 2009 is the next archive.

Find recent content on the main index or look in the archives to find all content.