当前位置: 首页 > news >正文

网站知识企业小程序制作的公司

网站知识,企业小程序制作的公司,wordpress 选单设定,iis网站批量导入摘自Jonas Boner在2006年5月1日发布在TheServerSide.com上的文章“ Distributed Computing Easy”中的介绍部分#xff1a; 分布式计算在企业应用程序开发世界中变得越来越重要。 如今#xff0c;开发人员不断需要解决以下问题#xff1a;如何通过将应用程序扩展到单个节点之… 摘自Jonas Boner在2006年5月1日发布在TheServerSide.com上的文章“ Distributed Computing Easy”中的介绍部分 分布式计算在企业应用程序开发世界中变得越来越重要。 如今开发人员不断需要解决以下问题如何通过将应用程序扩展到单个节点之外来增强可伸缩性 如何保证高可用性消除单点故障并确保满足客户的SLA 对于许多开发人员而言解决该问题的最自然的方法是将体系结构分为在不同服务器之间分布的组件或服务组。 尽管这并不奇怪但考虑到大多数开发人员所拥有的CORBAEJBCOM和RMI的传统如果您决定走这条路那么您会遇到很多麻烦。 在大多数情况下这样做是不值得的它会给您带来更多无法解决的问题。 ” 另一方面分布式计算和Java自然地结合在一起。 作为自下而上设计的第一种语言考虑了网络Java使计算机之间的协作变得非常容易。 如果考虑一下即使在浏览器中运行的最简单的applet也是分布式应用程序。 运行浏览器的客户端下载并执行其他系统提供的代码。 但是如果没有Java的可移植性和安全性保证即使是这个简单的applet也将无法实现applet可以在任何平台上运行并且不能破坏其主机。 cajo项目是一个小型图书馆可实现强大的动态多计算机协作。 它非常易于使用但性能无与伦比。 它是一个独特的“嵌入式”分布式计算框架这意味着它对您的应用程序没有任何结构上的要求也没有对源代码进行更改。 它允许多个远程JVM作为一个无缝地协同工作。 项目所有者约翰·凯瑟琳诺声称“山上之王 ;-)”并挑战所有愿意证明Java中存在与cajo同样灵活和一样快的分布式计算框架的人 。 说实话我个人对约翰的话深信不疑。 我坚信如果您让我逐步介绍此客户端-服务器示例您也将如此。 您会惊讶cajo框架多么简单和灵活 Server.java import gnu.cajo.Cajo; // The cajo implementation of the Grailpublic class Server {public static class Test { // remotely callable classes must be public// though not necessarily declared in the same classprivate final String greeting;// no silly requirement to have no-arg constructorspublic Test(String greeting) { this.greeting greeting; }// all public methods, instance or static, will be remotely callablepublic String foo(Object bar, int count) {System.out.println(foo called w/ bar count count);return greeting;}public Boolean bar(int count) {System.out.println(bar called w/ count count);return Boolean.TRUE;}public boolean baz() {System.out.println(baz called);return true;}public String other() { // functionality not needed by the test clientreturn This is extra stuff;}} // arguments and return objects can be custom or common to server and clientpublic static void main(String args[]) throws Exception { // unit testCajo cajo new Cajo(0);System.out.println(Server running);cajo.export(new Test(Thanks));} } 通过以下方式进行编译 javac -cp cajo.jar;. Server.java 通过以下方式执行 java -cp cajo.jar;. Server 如您所见只有2个命令 Cajo cajo new Cajo(0); cajo.export(new Test(Thanks)); 我们可以将任何POJO普通的Java旧对象公开为分布式服务 现在是Client.java import gnu.cajo.Cajo;import java.rmi.RemoteException; // caused by network related errorsinterface SuperSet { // client method sets need not be publicvoid baz() throws RemoteException; } // declaring RemoteException is optional, but a nice reminderinterface ClientSet extends SuperSet {boolean bar(Integer quantum) throws RemoteException;Object foo(String barbaz, int foobar) throws RemoteException; } // the order of the client method set does not matterpublic class Client {public static void main(String args[]) throws Exception { // unit testCajo cajo new Cajo(0);if (args.length 0) { // either approach must work...int port args.length 1 ? Integer.parseInt(args[1]) : 1198;cajo.register(args[0], port);// find server by registry address port, or...} else Thread.currentThread().sleep(100); // allow some discovery timeObject refs[] cajo.lookup(ClientSet.class);if (refs.length 0) { // compatible server objects foundSystem.out.println(Found refs.length);ClientSet cs (ClientSet)cajo.proxy(refs[0], ClientSet.class);cs.baz();System.out.println(cs.bar(new Integer(77)));System.out.println(cs.foo(null, 99));} else System.out.println(No server objects found);System.exit(0); // nothing else left to do, so we can shut down} } 通过以下方式进行编译 javac -cp cajo.jar;. Client.java 通过以下方式执行 java -cp cajo.jar;. Client 客户端可以通过提供服务器地址和端口如果有或使用多播来查找服务器对象。 为了找到合适的服务器对象使用“ 动态客户端子类型 ”。 对于所有不知道“ 动态客户端子类型化 ”代表什么的人John Catherino在其相关博客文章中解释道 “服务对象通常会实现大型的丰富的接口。 有时服务对象实现多个接口将其功能分组为不同的逻辑问题。 通常客户端只需要使用接口的一小部分即可。 或一些逻辑分组接口中的某些方法来满足其自身的需求。 客户端从服务对象定义的接口定义其自己的接口的能力在Java中称为子类型化。 与子类形成对比但是与常规Java子类型不同 动态客户端子类型化意味着创建一个完全不同的界面。 使此子类型成为动态的原因在于它可以与原始的未经修改的服务对象一起使用。 对于客户端的复杂性管理这可能是一种非常有效的技术。” 真的不是很酷吗 我们只需要定义客户端“需要”使用的接口并找到符合客户端规范的适当服务器对象。 从我们的示例中派生出以下命令即可完成此任务 Object refs[] cajo.lookup(ClientSet.class); 最后但并非最不重要的一点是我们可以通过发出以下命令来创建服务器对象的客户端“代理”并像普通的本地对象引用一样远程调用其方法 ClientSet cs (ClientSet)cajo.proxy(refs[0], ClientSet.class); 而已。 这些允许在分布式JVM之间实现完全的互操作性。 没有比这更容易的了。 就性能而言我对提供的示例进行了一些初步测试并在以下系统上获得了12000 TPS的平均分数 Sony Vaio具有以下特征 系统openSUSE 11.1x86_64 处理器CPUIntelRCoreTM2 Duo CPU T6670 2.20GHz 处理器速度1,200.00 MHz 总内存RAM2.8 GB JavaOpenJDK 1.6.0_0 64位 为了方便起见我提供了用于执行压力测试的代码段 int repeats 1000000; long start System.currentTimeMillis(); for(int i 0; i repeats;i )cs.baz(); System.out.println(TPS : repeats/((System.currentTimeMillis() - start)/1000d)); 编码愉快 并且不要忘记分享 贾斯汀 相关文章 Java最佳实践–高性能序列化 Java最佳实践– Vector vs ArrayList vs HashSet Java最佳实践–字符串性能和精确字符串匹配 Java最佳实践–队列之战和链接的ConcurrentHashMap Java最佳实践– Char到Byte和Byte到Char的转换 如何在不到1ms的延迟内完成100K TPS 提升您的休眠引擎 翻译自: https://www.javacodegeeks.com/2011/01/cajo-easiest-way-to-accomplish.html
http://www.pierceye.com/news/366897/

相关文章:

  • 循环视频做网站背景win2012r2 建设网站
  • 建设网站制作汉狮团队义乌北苑编程网站开发公司
  • 网站开发公司会计处理滨州市住房和城乡建设局网站
  • 企业网站站内优化长尾关键词挖掘站长工具
  • 山东平台网站建设企业怎么做自己的品牌网站
  • 长沙seo网站排名杭州网站建设q479185700棒
  • 泰州网站建设搭建工程造价网
  • 网站流程优化c2c模式举例子
  • 帝国网站调用图片集网店平台有哪些
  • 做flash音乐网站的开题报告删除wordpress左上角
  • php网站开发学什么衡水大型网站建设
  • 广州网站开发软件平台wordpress 问号
  • 西安市建设干部学校网站厦门网站优化服务
  • 深圳市南山区住房和建设局官方网站如何把html网站改为asp网站
  • 网站建设有什么技术做dw网站图片怎么下载地址
  • 初中生如何做网站潍坊网站开发
  • 如何修改用织梦做的网站的模板价格对比网站开发
  • 单位建设网站的作用意义家在深圳坂田业主论坛
  • 网站什么时候备案好宜昌网站建设
  • 那个网站可以查询美做空基金竹中建设官方网站
  • 做直播网站找哪个网站网站平台推广方法
  • 查工程中标信息哪个网站成都网站建设 致尚
  • 做硅胶的网站wordpress googleapis
  • 做网站 简单外包常见的管理信息系统有哪些
  • 做网站一万静海网站开发
  • 视频模板在线制作网站空客德国公司
  • 如何编程制作自己的网站献县做网站价格
  • 成都网站品牌设计设计教育培训
  • 无代码做网站wordpress添加模板后台显示
  • 中山做网站费用国内做网站好的公司