在此处插入图片内存数据网格—把数据推送到更接近应用程序的地方OracleCoherence:议题•对数据网格的需求•Coherence简介•Coherence3.6主题•不断发展的使用•客户案例:CCCInformationServices对数据网格的需求对数据网格的需求•用户群的爆炸式增长让系统不堪重负•变化速度超过IT重构系统的能力•承担不成功便成仁的巨大市场压力来满足用户期望•更改服务级别协议•增加新特性和新服务的持续压力•巨大的成本压力:基础架构迅速扩张•按需增减容量,实现可预测的无限可伸缩性•零延迟的极限性能•天生动态,可轻松变化•100%的事务完整性和数据可靠性•持续的可用性针对数据密集型的大容量关键任务应用程序问题挑战解决方案对数据网格的需求应用服务器Web服务器数据需求不断扩大的用户领域数据供应•OracleCoherence设计为根据数据需求进行数据供应•可使用常见硬件大幅向外扩展的中间层•任何负载下均可进行可靠的事务处理•能确保业务连续性的持续可用性数据源Java对象为什么在数据库外部扩展Java应用程序?巨大的性能瓶颈:容量/复杂性/数据访问频率应用程序数据库对象JavaSQL关系各层之间的性能瓶颈解决方案:将相关数据移到中间层应用服务器内存缓存对象关系数据库Java应用程序•其解决方案是将对象数据以对象形式保存在高速分布式内存缓存中•数据库仍然作为记录(持久保存)系统应用服务器内存缓存对象应用服务器内存缓存对象不同的需求需要不同的数据管理器•将数据作为对象来管理•在内存(或不再扩展的应用程序)中管理数据•横向扩展•在需要扩大容量时增加一些低成本的节点•按对象ID查询,满足应用程序的即时需求•按行/列来管理数据•在磁盘上管理数据•长期永久存储•纵向扩展•通常是SMP设备、bigbox、大型存储设备等•即席查询、数据仓库查询、SQL应用程序层数据库层完全不同的需求=不同的数据管理Coherence简介OracleCoherence•应用程序基础架构=开发库•提供数据网格和分布式缓存•集群技术•分布式数据结构和计算服务•纯Java1.5+(服务器和客户端)•纯.Net1.1、2.0和3.0(客户端)•纯C++(客户端)•不依赖第三方或开源软件•其他库支持„„•数据库和文件系统集成•TopLink、Hibernate、Http会话管理……OracleCoherence:独特的方法•自动进行数据分区并在整个服务器集群中平衡负载•同步复制数据以实现持续可用性•服务器监视彼此的运行状况•如果运行情况不确定,多台服务器将协同工作来诊断状态•正常运行的服务器将承担故障服务器的工作(并行)•持续运行:避免因服务器故障造成的服务中断或数据损失OracleCoherence:独特的方法•运行过程中动态扩展•自动将数据平衡到集群中新的服务器上•无需重新分区•无需重新配置•向外扩展过程不中断服务•动态伸缩容量和进行处理OracleCoherence:独特的方法•对等集群和数据管理技术•无单点故障•无单点瓶颈•无主服务器/从属服务器/注册表等•所有服务器都负责:•管理集群运行状况和数据•执行处理和查询•作为一个“团队”并行工作•点对点通信(非TCP/IP)和/或一对多通信•扩展到背板极限•与常见基础架构一起使用•线性可伸缩设计(c)版权所有2010,OracleCorporationOracle机密集群关乎一致!为什么:如果所有成员都知道……•我们可以实现数据和服务的分区/负载平衡•我们不需要始终开放TCP/IP连接(资源密集型)•任何成员都可以直接与其他成员(对等)“对话”•集群可以(在运行中)动态伸缩为任何大小集群化的HelloWorld……publicvoidmain(String[]args)throwsIOException{NamedCachenc=CacheFactory.getCache(“test”);nc.put(“key”,“HelloWorld”);System.out.println(nc.get(“key”));System.in.read();//maythrowexception}•加入/建立集群•将一个条目(键,值)放入“test”缓存中(注意无配置)•从缓存中取得该条目•显示该条目•最后使用“read”防止应用程序(和集群)终止集群化的HelloWorld……publicvoidmain(String[]args)throwsIOException{NamedCachenc=CacheFactory.getCache(“test”);System.out.println(nc.get(“key”));}•加入/建立集群•从缓存中取得该条目•显示该条目•启动任意数量的应用程序……它们都加入了集群,因此能共享缓存中的值Coherence3.6:主题OracleCoherence3.6主题•安全性:•新的安全性和身份验证框架•可插入的身份验证和加密提供程序•端到端的身份传播•增强的端到端SSL加密(客户端和服务器)•生产力和运营效率:•为开发人员提供类似SQL的新查询语言•如:SELECT、INSERT、UPDATE等•为运营支持提供新的控制台•“将Coherence视为数据库”OracleCoherence3.6主题•性能、可伸缩性和可靠性:•不断增强的实现•如:缓冲实现•如:仲裁•如:服务器监视•新的可插入/用户定义的索引实现•与JVM团队(JRockit和Sun)关系密切OracleCoherence3.6主题•.NET会话管理:•新的.NET会话管理实现•与Java实现具有同样的地位•传统、整体和分割的会话模型•卓越的性能•监视和管理:•全面的集群化JMX实现•集群范围的JMX通知•可伸缩OracleCoherence3.6主题•集成:•新的事务框架:跨资源和缓存的完整ACID事务(包括XA)•无事务管理器•符合标准(XA、JCA)•在“服务器端”(非客户端)管理•在向外扩展和恢复期间继续运行•规模更大的中间件(+开源软件)集成•OSB、BPM、JPA•WLS、JMS、CEP不断发展的使用OracleCoherence早期使用分布式缓存•数据代理:消除数据瓶颈•热门应用程序:大容量、高增长、关键任务•向外扩展方法:缓解可伸缩性问题OracleCoherence早期使用分布式缓存•数据代理:消除数据瓶颈•热门应用程序:大容量、高增长、关键任务•向外扩展方法:缓解可伸缩性问题不断发展的OracleCoherence使用•Web服务集成•“增值”处理不断发展的OracleCoherence使用•支持纯Java•事件驱动的体系结构不断发展的OracleCoherence使用•支持C++、.NET客户端•分布式消息传递客户案例:CCCInformationServicesCCCInformationServices简介机动车定损(APD)行业的龙头APD市场的通信枢纽(SaaS)提供碰撞评估、估价和工作流产品客户包括:保险公司维修厂独立评估师我们的Java/JEE景观•针对后端和B2B的产品主要基于Java/JEE•维修厂使用的.NET客户端•目前通过专用协议连接到大型机•到今年年底迁移到OracleSOA平台•面向保险理算员和索赔管理的基于Web的应用程序•大型机每天处理的事务约1.2M个•任务31K/天•评估173K/天•图像50K/天•报告100K/天•事件185K/天•回收的部件330K/天要求•我们的任务•为保险公司和维修店提供质量可靠的服务。•尽快把客户的汽车修好。•我们的要求•更精确地说是非功能要求(即软件质量属性)•可用性•可靠性•可维护性•性能•满足客户SLA要求OracleCoherence•是数据网格解决方案,而不是独立缓存解决方案。•快速可靠地访问数据。•使用对等集群协议跨多个服务器对数据进行复制和分发(分区)。•持续可用性和事务完整性。•透明地向网格添加或从网格删除节点。•支持多种编程语言。•为控制/管理数据网格提供JMX支持。问题1•在基于Web的应用程序中进行会话管理解决方案1问题2•使用实体bean实现只读缓存解决方案2获得OracleCoherenceOracleCoherence•搜索:••下载••支持•••详细信息•: