创建内存占用较少的 Java 客户机满足 SOA 需求

xml的JAVA解析与格式定义 解析器的介绍 文档对象模型(DOM)解析实例 SAX解析实例 DOM4J解析实例 JDOM解析实例 JAVA操纵XML 实例讲解 立即下载

SOA 提供了一系列服务,其中一些服务由用户使用,而另一些则由计算机使用。事实上,由计算机使用的这些服务通常使 SOA 具有几分递归结构。本文将介绍一种简单的方法,可定义由 Internet 服务提供商(ISP)使用的服务。之所以选择这种类型的提供商是因为大部分人对它比较熟悉。然而,其中的原理并不限于通信提供商:可以应用于所有类型的服务提供商 — 银行、股票代理、公用事业公司等等。

本文假设某个 ISP 对其全部或部分基础设施实现了 SOA。该提供商输出的服务之一就是提供一种基于 Web 的工具,用户可以借助该工具修改他们的服务配置文件。

本文的目的

撰写本文之际,SOA 技术仍然处于发展阶段,并且很多大型软件供应商还在开发各自的 SOA 产品。因此,SOA 领域目前综合了各种技术,包括 Java Business Integration (JBI)、Intelligent Event Processing 和 Business Process Execution Language (BPEL) 服务器。因此,在将各种技术融入到一个解决方案之前,想要从 SOA 中受益的用户组织很可能需要进行大量投资。通过对 SOA 布置如此高的复杂性,行业提前为实现供应商定位铺好了道路,即使 SOA 其中的一项承诺是实现基于标准、面向组件、独立于供应商的计算。在开始代价高昂的迁移过程前,用户组织能够获得一些实用的 SOA 使用体验吗?

为回答这个问题,本文通过简单的 XML 和一些 Java 代码演示了几个重要的 SOA 原理。本文并不打算介绍 SOA 领域中的所有内容;相反,我们只介绍其中的一些关键部分。例如,您可以考虑使用 RSS 发布 XML 服务定义。但是,在本文的例子中,传输机制使用的是 Java 工具。

这种聚焦式方法的优点就是用户组织中的 Java 开发人员可以使用其中的理念构建自己的简单的试验性 SOA。这种试验模式有助于组织实现 SOA 的商业效益。后者包含对业务服务建模,例如计算服务、用户自助服务、更好的自动化服务和更具响应性的服务。您可以将上述的迁移作为一个独立试验实现,与现有业务流程并行运作。

用户组织不需要进行大型投资就可实现一个试验性质的 SOA。通过这种方式,陈述特定于组织的 SOA 需求时可以脱离任何供应商实现。实际上,某些较小的用户组织可以继续使用他们的试验性 SOA 模式,只在后期迁移到软件供应商提供的大型商用解决方案。

自助服务趋势

对于大多数服务提供商来说,自助服务正在发展为一种趋势 — 特别是那些资金紧张的 ISP。因此,如果您需要更多带宽(进行下载或玩在线游戏),您可以登录到提供商的 Web 站点并通过 Web 页面自动升级与提供商的连接。让我们看一个具体的例子:清单 1 展示了一个简单的基于 XML 的用户服务配置文件。


清单 1. 一个简单的基于 XML 的服务描述

< ServiceInstance >
< Customer > Josephine Bloggs </ Customer >
< Package > Internet </ Package >
< Bandwidth > 1mbps </ Bandwidth >
< DownloadLimit > 1Gbyte </ DownloadLimit >
< Uptime > 95 </ Uptime >
</ ServiceInstance >

代码解释了这个用户 XML 服务模型。该模型包括:

  • 一个服务实例
  • 客户名字
  • 服务包的名称
  • 已配置的带宽量
  • 每月允许的下载限度
  • 提供商正常运行时间保证

无疑,服务定义可以比此处的例子复杂很多。其他内容可能包括客户地址、账单明细、往返延迟、加密和服务信用信息等。重点是,越来越多的提供商提供如 清单 1 所示的 Web 访问细节。某种程度上讲,这种尝试可以减少支持电话的花销和发生频度。有趣的是,这种基于 Web 的服务可以使用户觉得为他们提供服务的是较为先进的提供商。这实现了双赢的局面,因为客户可以更好地访问他们的服务数据,而提供商可以销售无需他们插手的服务包。授权的用户可以修改如 清单 1 所示的一些服务参数 — 例如,配置的带宽。随之修改的是用户每月的订购费用。

因此,清单 1 中的代码形成了基于 XML 的服务模型的基础。通过简单地与在线表单进行交互,用户可以修改可写的服务元素(例如带宽)。通过在线表单进行的修改将被记录,然后反映到可由用户配置文件修改的后端服务中。这是一种实现自助服务的标准方法。

然而,您将要了解的是另一种更加松散耦合的自助服务 — 使用这种服务,用户可以通过在网络中传输 清单 1 中的 XML 内容修改数据。在这种场景中,所传输的 XML 内容可通过一个 Java 客户机进行修改,后者可运行在台式机、笔记本电脑、甚至某种资源受限的设备上(例如手机),然后将数据发回给网络服务提供商。这种机制超越了基本的 HTML 页面模型并采纳了 SOA 思想。

将服务定义 XML 文档传输给使用 Java 技术的客户机

Java 技术和 XML

Java 技术和 XML 几乎成为了同义词。实际上,我通过 IBM 工具对整篇文章应用了 XML 格式。尽管 XML 取得了显而易见的巨大成功,仍需注意 XML 是一种相当笨拙的技术,例如 <start> 和 <end> 标签会增加大量带宽并在通过网络传输数据时处理系统开销。然而,忽略这种特性,XML 确实提供了一些强大的处理工具。这些工具(本文将探讨其中的两种)基本上解决了数据表示和解析问题(后者长久以来一直难以解决)。现在,通过使用 XML 工具,各种技术级别的程序员都可以实现专业的标准化解析。

Java 技术为 XML 数据处理提供了一些真正强大的工具(请参见侧栏 Java 技术和 XML)。如果将 清单 1 中的内容看作是给定数据集的基于 XML 的呈现,那么您还可以使用其他方式进行呈现。构成 清单 1 基本内容的原始数据一般保存在数据库中。因此,您如何将这些数据打包成 XML?

清单 2 中的内容摘取自本文附带的 Java 文件 encodeXML.java.(相关文件可从 下载 部分获得)。encodeXML.java 类对 XMLEncoder 类的对象进行了实例化。如您所见,这个对象随后在当前目录中创建了名为 xmldata.xml 的文件。下一步是将 XML 数据值插入到文件中,这可以通过调用一连串的 writeObject() 方法实现(清单 2 对此进行了说明)。显然,在生产环境中,清单 2 中硬编码的文本字符串将来自数据库这样的持久性存储。无论何种情况,可以看到 XML 数据文件的创建非常简单。


清单 2. 使用 XML 格式编码数据

XMLEncoder e = new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream("xmldata.xml")));
e.writeObject("Josephine Bloggs");
e.writeObject("Internet");
e.writeObject("1mbps");
e.writeObject("Gbyte");
e.writeObject("295");
e.close();

执行 清单 2 中的程序后,程序的执行目录中将出现一个名为 xmldata.xml 的文件。清单 3 解释了新创建文件包含的内容。


清单 3. 生成的 XML 数据

<? xml version="1.0" encoding="UTF-8" ?>
< java  version ="1.5.0_06"  class ="java.beans.XMLDecoder" >
< string > Josephine Bloggs </ string >
< string > Internet </ string >
< string > 1mbps </ string >  
< string > Gbyte </ string >  
< string > 295 </ string >
</ java >

您可以通过网络将 清单 3 中的文件传输给等待状态中的客户机 — 使用 Java 技术即可创建。清单 4 展示了一个简单的例子。


清单 4. 跨越网络传输文件

byte[] bytes = new byte[BUFFER_SIZE];
FileInputStream inputFile = null;
try
{
File file = new File("xmldata.xml");
if (file.exists())
{
inputFile = new FileInputStream(file);
int ch = inputFile.read(bytes, 0, BUFFER_SIZE);
while (ch != -1)
{
output.write(bytes, 0, ch);
ch = inputFile.read(bytes, 0, BUFFER_SIZE);
}
}

清单 4 中的代码创建了一个长度缓冲区 BUFFER_SIZE。 BUFFER_SIZE 常量的值可以是 1024 或更高。通过调用 inputFile.read() 方法将输入文件(xmldata.xml)的内容读取到缓冲区中。进行缓冲之后,output.write() 方法将文件数据写入到 OutputStream 对象的套接字中。最后一步将数据通过网络发送到等待中的客户机中。这些功能居然只需要这么少的代码!

接下来,您需要使客户机处理传入的 XML 数据。

接收数据的 Java 客户机获得 XML 内容(并不是 XML 文件)

客户机如何接收 XML 数据?同样,对于 Java 技术来说这只是小事一桩。数据接收通过一个套接字对象完成。清单 5 展示的代码将接收传入的数据并将数据推入到 ArrayList 类的对象中。

客户机现在必须解决两个与所接收数据项的数量有关的问题。由于这是一个松散耦合的场景,您必须假定客户机并不清楚服务配置文件(即 清单 1 中的代码)中包含了多少 XML 数据项。因此,您必须确定一些方法来接收和处理精确的数据项数量。第二个问题比较容易解决,就是如何保存处理过的数据。您将看到,清单 5 同时解决了这两个问题。


清单 5. 提取嵌入的 XML 数据

XMLDecoder d  =   new  XMLDecoder(input);
try
{
while (true)
ArrayList
<Object[]> rowList = new ArrayList<Object[]>();
{
String dataItem 
= (String)d.readObject();
System.out.println(
"XML decoded data: " + dataItem);
rowList.add(dataItem);
}

}

}
catch  (Exception exc)
{
if (exc instanceof ArrayIndexOutOfBoundsException)
{
// No more records to process
System.out.println("Parsed all XML records - " +
    
"threw exception. Number of rows: " + rowList.size());
}

}


d.close();

通过一个有限循环 while (true),您可以确定期望的到来数据项的数量。该代码将一直执行循环,直到接收到最后一个数据项,此时将抛出一个异常(ArrayIndexOutOfBoundsException)。您必须使用这种异常机制,除非客户机已经了解期望的数据项数量。

从 InputStream 对象接收的 XML 数据被保存在 ArrayList 类的一个对象中。该类对于此类应用程序非常有用。完成类定义之后,ArrayList 具有一个特定的容量,总是匹配底层列表的大小。在添加元素时,ArrayList 对象的容量将自动扩展。因此,您无需担心会超过数组的极限,因为该类将为您处理这一问题。

此时,客户机具有 清单 1 中数据的副本。客户机现在可以将带宽元素修改为所需的值,然后反向执行文件传输过程,从客户机发送到服务器。通过将 XML 文件从服务器移动到客户机,客户机实际上使用了这一服务。更新后的数据被发送回服务器以完成事务。当然,服务提供商必须验证传入的数据并提供所需的带宽更改。

本文描述的这种模式首先将一个 XML 文件通过网络传输到客户机。客户机将文件数据作为流进行接收,然后将其解析为一个内存驻留对象。客户机随后对内存驻留对象进行更改,然后反向执行传输过程,将对象发回到服务器。

还存在一种服务,其中 XML 数据被完整无缺地从服务器传输到客户机。这种场景中,客户机使用某种形式的文件传输协议(例如 FTP)获得完整的文件副本。由于文件传输是一种标准技术,这里不作过多介绍,您只需了解客户机将下载 清单 1 中服务配置数据的一个文件副本。此时,客户机需要解析并修改文件,然后传输回服务器,这种模式的工作原理是什么?

一种基于 XML 文件的 Java 机制

客户机现在将服务配置文件的副本保存在磁盘中。必须对该文件进行解析以提取 XML 数据。让人意外的是,这实现起来有些难度,对于较大的文件尤其如此。解决问题的关键是使用合适的解析工具。本文中使用的工具是 dom4j,该工具允许您将 XML 数据解析为一个 Java 对象。您还可以使用一个基于 Simple API for XML (SAX) 的解析器,但是 SAX 是一种较低级的技术。您将看到,dom4j 工具仅需要很少的工作即可完成解析。清单 6 引用自本文附带的 ProcessEventXml.java 文件,展示了使用 dom4j 解析文件所需的主要元素。


清单 6. dom4j 处理 XML 数据

try
{
handler.treeWalk(handler.parse(
new File(argv[0])));
}

catch  (Throwable t)
{
t.printStackTrace();
}

}

public  Document parse(File url)
throws  DocumentException
{
SAXReader reader 
= new SAXReader();
Document document 
= reader.read(url);
return document;
}


public   void  treeWalk(Document document)
throws  Exception
{
treeWalk(document.getRootElement());
}

基本上只需要两种方法:parse() 和 treeWalk()。当我运行经过编译的类时,我获得了如 清单 7 所示的输出。如果您希望亲自运行代码,请确保下载、安装 dom4j 副本,并添加到 CLASSPATH 中(最后一步就是将相应的 JAR 文件添加到您的 CLASSPATH 变量中)。然后,编译 ProcessEventXml.java 文件并使用以下命令运行程序:

java ProcessEventXml ServiceDefinition.xml

清单 7. 使用 dom4j 处理 XML 文件

java ProcessEventXml ServiceDefinition.xml
Josephine Bloggs Internet 1mbps 1Gbyte 95

正如您看到的,仅需少量工作即可整洁地显示 XML 数据。这些工作都是由 dom4j 处理的。事实上,大部分工作是通过 treeWalk() 方法完成的,这是一种只有到达文件末尾才进行调用的递归式方法。这里向您展示了 dom4j 的一个功能:在内存中进行处理。需要注意的是,该技术不适合用于特别大型的 XML 文件,特别是如果您的 Java 设备非常小的话。然而,在本文的例子中,XML 数据集非常小,因此使用这个功能不会产生问题。

您的基于文件的客户机现在已经成功访问了 XML 数据。客户机可以根据需要修改数据并编写新的 XML 文件。然后将其传输回服务器进行处理。像上文一样,客户机在这一过程中使用了该服务。

结束语

Java 技术为 SOA 设计和实现提供了经过优化的解决方案。通过使用简单的基于 XML 文件的服务配置,您可以轻松地在网络中移动客户机数据。客户机可以查看并修改这些数据,然后使用这些数据更新服务。本文中的服务由 ISP 提供,但是任何提供商都可以使用这种方法。

这种客户机服务的一个关键因素是工作流。商用 SOA 产品趋向于使用 BPEL 提供这种功能。而试验性 SOA 模式可能使用简单的消息传递模式 — 例如,Java Message Service (JMS) 应用程序编程接口(API)。正如我在简介中提到的一样,这种方法的优点是组织可以在为迁移到商用 SOA 解决方案而做出重大投资之前获得一些 SOA 使用体验。

除了工作流支持外,本文没有涉及到的另一个重要问题是安全性。如果客户机用户修改了他们的服务配置,那么需要对底层数据进行保护。同样,Java 技术提供了一些方法可以实现安全性。

您还可以使用一种更粗糙的方法将 XML 服务配置数据表示为文件。客户机随后使用某种模式将这些文件传递到本地存储中,然后您可以使用 dom4j 解析并修改文件数据。Java 技术也提供了一些工具简化了这些操作。通过使用这些方法,任何规模的 Java 客户机可以完全参与到 SOA 实现中。

下载

描述名字大小下载方法
本文的示例 Java 代码x-xmlandsoa-code.zip6KBHTTP
关于下载方法的信息


参考资料

学习

 

 

 

 

STM32HAL库学习笔记九——LCD显示 本文不会对驱动编写做特别详细的描述,以记录CubeMX的部署流程为主。 阅读详情

相关推荐

模电学习笔记(十二)——跨阻放大器

模电学习笔记(十二) 跨阻放大器 跨组运算放大器是将电流信号转换成为电压信号,电流到电压增益基于反馈电阻。 设计目标: 输入 输出 带宽 电源 0A 100uA 0V 7V 20kHz 15V -15V 1.计算R1的值(增益电阻器) 2.计算C1的值满足电路带宽 ...

tang11081023的博客 2万+

通过 Java 编程处理 XML 服务定义

创建内存占用较少的 Java 客户机满足 SOA 需求面向服务架构(SOA)通常会输出一系列服务。针对 XML 服务建模以及随后用户(人员、机器或其他服务)对这些服务的使用,Java™ 技术提供了强大的 XML 数据处理机制,从而为应用 SOA 理念提供了重要基础。通过本文研究 XML 和 Java 技术在 SOA 中的实际应用,并通过明确的示例了解为何这个看似复杂的技术能够如此流行。

网络 人生 学习 进步 1265

昇腾NPU实战:PaddleSpeech语音模型高效部署与性能优化指南

本文详细介绍了如何在华为昇腾NPU上高效部署PaddleSpeech语音识别模型。通过使用官方Docker镜像、解决依赖冲突、修改源码适配NPU算子,并应用混合精度与批处理等优化技巧,实现模型在昇腾平台上的稳定运行与性能提升,为AI语音应用提供高性价比的国产硬件部署方案。

weixin_29214691的博客 181

java xml请求_服务端发送xml请求java代码示例

/****/packagecom.autoyol.pay.cmb.core;importjava.io.ByteArrayOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.HttpURLConnection;importjava.net...

weixin_32691823的博客 381

Android SystemUI——初始化流程(三)

1、Android 系统在启动之后,首先会Zygote进程,Zygote进程又会进一步启动 SystemServer进程,它会启动各种系统所需要的服务,在监听AMS启动完毕之后,还会启动SystemUIService。2、在启动SystemUIService服务之前,系统首先会创建SystemUI对应的进程,获取SystemUIAppComponentFactory实例对象,调用instantiateApplicationCompat创建SystemUIApplication实例对象并设置回调方法。

小旭的专栏 1159

使用 Python 构建 Reddit 热帖爬虫:抓取热门讨论帖和评论

在现代互联网中,Reddit 被誉为全球最大、最活跃的讨论平台之一,汇聚了各种主题的帖子、评论和社交互动。因此,抓取 Reddit 上的热门帖子和评论可以为我们提供一个丰富的文本数据源,可以用于情感分析、话题建模、趋势分析等应用。Reddit 提供了官方的 API,可以让开发者获取包括帖子、评论、用户信息等在内的各种数据。我们可以结合上述方法,抓取多个热门帖子,并将每个帖子的标题、作者、发布时间和评论内容保存到一个数据结构中。每个帖子的对象包含了丰富的信息,如标题、内容、发布时间、作者等。

2201_76125261的博客 382

java输出xml数据

这几天,从迷惘到清晰。我想记录一下,这次的心路历程。 package com.xh.xml;    import java.io.FileOutputStream;    import java.io.IOException;    import org.jdom.Document;    import org.jdom.Element;    import org.

Kaspar_w的专栏 1314

YOLO11全网首发:CVPR2026 Transformer注意力 | BinaryAttention 1-bit注意力,推理提速100%,超越FlashAttention2

本文改进:BinaryAttention 结合YOLO11的C3k2模块,全网首发创新。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 856

Java中对XML格式数据的四种解析方式,代码示例解析

首先我们来了解一下什么XML格式。 XML全称为Extensible Markup Language,是一种通用的数据交换格式,具备平台无关性、系统无关性、语言无关性等优点,在数据交互中带来极大地便利。值得一提的是,在不同语言环境中的解析方式都是一样的,只不过实现的语法不同罢了。 XML文件解析的方法有四种,分别为:DOM解析、SAX解析、JDOM解析、DOM4J解析。其中前两种属于基础方

蓝色的天空 4357

【Unity实战】实现最完美最简单的UI适配方案,背景压缩或者拉伸变形解决方案,手机刘海屏适配,适配不同分辨率,不同尺寸,不同设备。

这期来讲一个简单的UI设计方案,很多同学可能搞不懂锚点、轴心这些概念,导致做好的UI在别人的设备上,乱跑或者是重叠,或者是参加游戏老发时间比较紧来不及做适配,都可以来试试这个方法,通过填充边框来保持游戏画面的原始比例,所以它的缺点也很明显,在一些移动设备上会浪费比较大的显示面积。 unity不同设备UI变形? UI在不同设备上如何适配?

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3652

文末含资料链接和视频讲解!YOLOv8+RepVGG+QueryDet小目标检测终极指南:从理论到实战,突破遥感图像检测难题

QueryDet(Query Detection)机制代表了目标检测领域的一个重要范式转变。传统的目标检测方法基于anchor或anchor-free的密集预测,需要为图像中的每个可能位置生成预测。而QueryDet采用了稀疏查询的方式,通过少量的可学习查询向量来直接预测目标。 这种设计灵感来源于Transformer架构中的注意力机制。在自然语言处理中,Transformer通过query-key-value机制实现了高效的序列建模。QueryDet将这一思想引入到目标检测中,将检测问题转化为查询匹配问

FJN110的博客 387

java xml 内存,通过Java编程处理XML 为SOA减少内存占用(3)

清单 4 中的代码创建了一个长度缓冲区 BUFFER_SIZE。 BUFFER_SIZE 常量的值可以是 1024 或更高。通过调用 inputFile.read() 方法将输入文件(xmldata.xml)的内容读取到缓冲区中。进行缓冲之后,output.write() 方法将文件数据写入到 OutputStream 对象的套接字中。最后一步将数据通过网络发送到等待中的客户机中。这些功能居然只需...

weixin_28909745的博客 241

Win11此电脑怎么放在桌面上?Win11此电脑如何显示在电脑桌面上?

相信用习惯Win10的用户都喜欢电脑电脑桌面上的此电脑,但是很多用户更新完Win11正式版以后,发现桌面只有回收站和Microsoft Edge图标,没有此电脑。那么,Win11此电脑要如何显示呢?下面小编为大家简单介绍一下操作方法!5、桌面图标设置窗口,点击勾选计算机,然后点击确定,桌面就可以显示此电脑图标了。1、桌面空白处,点击右键,在打开的菜单项中,选择显示设置;4、个性化 - 主题,相关设置下,点击桌面图标设置;3、右侧点击主题(安装、创建、管理);2、设置窗口,左侧点击个性化;

shengyin714959的博客 13万+

通过java编程处理xml 为soa减少内存占用

  很多大型软件供应商还在开发各自的 soa 产品。因此,soa 领域目前综合了各种技术,包括 java business integration (jbi)、intelligent event processing 和 business process execution language (bpel) 服务器。因此,在将各种技术融入到一个解决方案之前,想要从 soa 中受益的用户组织很可能需要

402

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

DB2简介

DB2 是什么?   DB2 href="http://search.yesky.com/search.do?stype=0&wd=DB2" target=_blank>DB2 是一种关系数据库管理系统(RDBMS),是 Information Management 产品系列的一部分。DB2 被认为是第一种使用 SQL(一种为 RDBMS 提供接口的语言)的数据库产品。DB2 于 1982 年...

疯狂的黑客 1207

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

十八、软考-系统架构设计师笔记-真题解析-2018年真题

A.层次系统 B.解释器 C.黑板 D.事件驱动系统A.性能 B.吞吐量 C.可靠性 D.可修改性A.可测试性 B.可移植性 C.互操作性 D.可修改性解析:

落日的博客 2366

java后台框架进化史--------Dubbo

架构的发展背景 Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起。 单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本。 缺点:单一的系统架构,使得在开发过程中,占用的资源越来越多,而且随着流量的增加越来越难以维护 正在上传…重新上传取消 垂直应用框架(MVC...

U&Me的博客 530

使用 gSOAP 通过 HTTP 和 HTTPS 调用由 WSAD 创建的 J2EE Web 服务

引言 很多公司都提供基于 Java™ 的 Web 服务栈,包括 Apache 的 Axis、IBM 的 WebSphere® Studio Application Developer (WSAD) 和 BEA 的 WebLogic Web 服务。Microsoft® .NET 技术提供一些用于 Web 服务的工具,如 Web Services Enhancements (WSE) 3.0 等。但

nodeathphoenix的专栏 1834

DB2数据库基本特性和概念简介

 DB2 是什么?   DB2 是一种关系数据库管理系统(RDBMS),是 Information Management 产品系列的一部分。DB2 被认为是第一种使用 SQL(一种为 RDBMS 提供接口的语言)的数据库产品。...

1983

Java Web服务收到请求时线程的情况以及session情况

Web请求线程的状态:   在开发中, Java对每一次Web的请求,是否都会创建一条线程去进行处理呢?也就是说,当一个Class的方法同时有1000个请求访问时,线程是如何运作的呢? 解释上面的问题,首先需要说一下Web服务器处理请求的几种模式: 1、收到一个请求就处理,这个时候就不能处理新的请求,这种为阻塞 这个是单线程模型,无法并发,一个请求没处理完服务器就会阻塞,不会处理下一个请求...

GreyWings的博客 1293

软考-系统分析师-备考笔记

根据学习视频和一些资料整理的软考系统分析师考试笔记,2025年下半年通关

提子同学是我 1027

DB2学习文档7——DB2数据库基本特性和概念简介

DB2 是什么?   DB2 是一种关系数据库管理系统(RDBMS),是 Information Management 产品系列的一部分。DB2 被认为是第一种使用 SQL(一种为 RDBMS 提供接口的语言)的数据库产品。DB2 于 1982 年首次发布,现在已经可以用在许多操作系统平台上,包括 Linux、UNIX 和 Windows。   DB2...

xiaoer 272

Dubbo详解,用心看这一篇文章就够了【重点】

1.1 Dubbo概述 Dubbo是阿里巴巴开源的基于 Java 的高性能RPC(一种远程调用) 分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 每天为2千多个服务提供大于30亿次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点以及别的公司的业务中。 简单的说,Dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有Dubbo这样的分布式服务框架的需求。 并且本质上是个远程服务调用的分布式框架(告别Web Service模式中的

ᶻᶻᶻ 枕星河的博客 11万+

Dubbo背景和简介

Dubbo背景和简介 Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起。 单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本。缺点:单一的系统架构,使得在开发过程中,占用的资源越来越多,而且随着流量的增加越来越难以维护 2:垂直应用框架(MVC) 垂直应用架构解决了单一应用架构所面临的扩容问题,流量能够分散到各个子系统当中,且系统的体积可控,一定程度上降低了开发人员之间协同以及维护的成本,提升了开发效率。缺点:...

小泽 556
上一篇: 扩展 Visual Editor 的控件和属性
下一篇: Mylyn 2.0,第 1 部分: 集成的任务管理
phantomhu
博客等级 码龄23年 70粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值