<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sharpmark &#124; 刘炯的博客 &#187; IT科普</title>
	<atom:link href="http://liujiong.com/blog/tag/it%e7%a7%91%e6%99%ae/feed/" rel="self" type="application/rss+xml" />
	<link>http://liujiong.com</link>
	<description>Version 3.0</description>
	<lastBuildDate>Wed, 04 Apr 2012 17:47:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>并发编程 &#8211; 并行与分布式</title>
		<link>http://liujiong.com/blog/posts/concurrent-programming-parallel-and-distributed/</link>
		<comments>http://liujiong.com/blog/posts/concurrent-programming-parallel-and-distributed/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 13:12:48 +0000</pubDate>
		<dc:creator>sharpmark</dc:creator>
				<category><![CDATA[文摘笔记]]></category>
		<category><![CDATA[计算机科学]]></category>
		<category><![CDATA[IT科普]]></category>
		<category><![CDATA[并发编程]]></category>

		<guid isPermaLink="false">http://218.240.14.21/~sharpmark/?p=182</guid>
		<description><![CDATA[如果两个事件在同一时间间隔内发生就称这两个事件是并发的，两个或多个任务在同一时间间隔内执行叫做并发执行。对我们而言，并发并不一定就表示在同一精确时刻执行，例如，两个任务... ]]></description>
			<content:encoded><![CDATA[<p>如果两个事件在同一时间间隔内发生就称这两个事件是<strong>并发</strong>的，两个或多个任务在同一时间间隔内执行叫做并发执行。对我们而言，并发并不一定就表示在同一精确时刻执行，例如，两个任务可能在同一秒发生，但是每个任务在该秒的不同时间片内执行。</p>
<p>并发技术是的计算机程序能够在同一时间间隔或同一时限内做更多的工作，……。某些情况下，<strong>在同一时间间隔做更多的工作并不是目的所在，简化程序解决方案才是真正目的。</strong>有时把问题的解决方案看作一组并发执行的任务更合理。</p>
<p><strong>并行(Parallel)</strong>和<strong>分布式(Distributed)</strong>编程是达到软件并发的两种基本途径，它们是两种不同的、有时又相互交叉的编程范例。并行编程技术将程序必须处理的作业分配给一个物理或虚拟计算机内的两个或多个处理器，分布式编程技术将程序必须处理的作业分配各两个或多个处理器，这些处理器可以也可以不在同一个计算机中，也就是说分布式程序的各部分通常在不同的由网络连接的计算机上运行，或者至少在不同的处理器上运行。包含并行性的程序在同一个物理或虚拟计算机上执行，程序内的并行性可分成进程或线程。分布式程序仅能分成线程，多线程仅限于并行性。</p>
<p>在技术上，并行程序有时候是分布式的，例如PVM(Parallel Virtual Machine) 编程；分布式编程有时用于实现并行性，例如MPI(Message Passing Interface)编程。但是并非所有的分布式程序都包括并行性，分布式程序的各部分可以在不同时间间隔内的不同时刻执行。</p>
<p>软件级的并发可以分为：指令级、例程(函数/程序)级、对象级、应用程序级。</p>
<p>——摘自《C++并行与分布式编程》 <em>Parallel and Distributed Programming Using C++</em></p>
<p>并行计算和分布式计算是两个容易混淆的概念，希望上面的解释可以帮助同样迷惑的你理解他们的关系。</p>
]]></content:encoded>
			<wfw:commentRss>http://liujiong.com/blog/posts/concurrent-programming-parallel-and-distributed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Enterprise Edition(J2EE)概述</title>
		<link>http://liujiong.com/blog/posts/javaee-summary/</link>
		<comments>http://liujiong.com/blog/posts/javaee-summary/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 14:35:22 +0000</pubDate>
		<dc:creator>sharpmark</dc:creator>
				<category><![CDATA[计算机科学]]></category>
		<category><![CDATA[IT科普]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://218.240.14.21/~sharpmark/?p=176</guid>
		<description><![CDATA[十月份开始看J2EE的东西。很崩溃，突然涌出来那么多名词。一个个理解它们的意思，作用和使用方法……。很吐，为了能让后来人不被这些名词所迷惑，这里写个扫盲贴，新入门的人可以根据... ]]></description>
			<content:encoded><![CDATA[<p>十月份开始看J2EE的东西。很崩溃，突然涌出来那么多名词。一个个理解它们的意思，作用和使用方法……。很吐，为了能让后来人不被这些名词所迷惑，这里写个扫盲贴，新入门的人可以根据下面的介绍，合理的选择自己需要学习的东西。随着我对他们认识的逐步加深，这篇还可能不断更新。欢迎随时关注。下面的内容都是自己写的，但自己也是初学，所以有什么不对的地方，欢迎指正。</p>
<h4>Java</h4>
<p>先说Java. 目前广泛使用的是Java 1.5。Java分为Java Platform, Enterprise Edition(Java EE), Java Standard Edtion(Java SE), Java Micro Edition(Java ME)。分别运用于企业开发，标准开发以及移动设备（嵌入式）开发。在Java是1.2版本的时候，SUN认为Java改动很大，所以称之为Java2。后来大家习惯了这种称呼方法，就有了所谓的J2EE, J2SE, J2ME，他们跟Java EE/SE/ME是完全等价的。不过在2006年，SUN放弃了J2xE的称呼，统一为Java XX Edition。这里侧重说一些关于Java EE的名词。</p>
<h4>JDK/JRE</h4>
<p>JDK:Java Development Kit。语源是SDK。是Java得开发包，面向使用Java开发的人员。JRE是Java Runtime Enviroment，面向的是使用Java相关软件或者服务的用户。</p>
<h4>JSP/Servlet</h4>
<p>Servlet是Java EE的核心。它是一个响应网络请求，并做出答复的组件。可以处理各种网络请求，并返回结果。绝大多数时候，servlet响应的是http请求，返回的是一个html页面。Servlet处理请求得功能很完善，不过对于返回的Html各式并没有天生的良好支持。所以就有了JSP(Java Server Page)，它是将类似Java语法的代码嵌入html页面中，生成动态的html。JSP实质上，在最后都会编译成servlet。所以，JSP只是一种简化html开发的技术。</p>
<h4>Struts/Webwork</h4>
<p>基于Java EE的框架。所谓框架， 可以理解成是对底层进行了封装，并提供专有功能的程序库。Struts是Java EE的老牌开源框架。struts, webwork都是侧重于表示层方面的框架，都是基于MVC模型。Struts 1.2比较成熟，多数使用struts的都是基于此版本。所谓的struts 2.0是struts的开发者发现struts本身的固有模型有问题，所以完全放弃，跟另一个表示层框架webwork合并，使用Webwork2作为底层的新框架，跟struts 1.2完全不同。</p>
<p><span id="more-176"></span></p>
<h4>JSF</h4>
<p>Java Server Faces。一个模型更加高级的表示层框架。类似asp.net的事件驱动模型。有很大潜力，不过最大的缺点是，它还不是Java标准。(这个我没有用过，所以信息就这么多了)。</p>
<h4>Spring</h4>
<p>目前最流行的Java EE框架。基本延伸到了Java EE的整个模型中(表示层，业务逻辑层，数据层)。其主要特点是AOP和IoC。它的模块很多，可以只使用其中几个，而且Spring跟其他框架是配合关系，而不是竞争关系。Spring可以很好的整合目前流行的很多框架。Spring还有自己的一套轻量级MVC模型，可以取代Struts/Webwork。</p>
<h6>AOP</h6>
<p>Aspect Oriented Programming.面向切片编程(以前叫做面向方面编程)。将程序的一些服务代码，例如日志纪录，数据检验等分离出来。使得原始程序更加注重业务逻辑。</p>
<h6>IoC</h6>
<p>Inversion of Control.控制反转，或称依赖注入。一般情况下，要使用一个框架，就将框架的一些代码嵌入到原始程序中，这样做会产生对框架的依赖性。控制反转，就是再不改变原始的对象的情况下，反转整个过程，由外部来注入。这样就可以很容易的使用或者放弃某个框架。这个能力就是Spring的核心。</p>
<h4>DAO</h4>
<p>Data Access Object。数据访问对象，属于O/R mapping的一种实现方法。通过DAO对象，可以将程序对象的属性等映射到数据库中。</p>
<h4>JDBC/JDO/Hibernate</h4>
<p>数据访问层的组件/框架。JDBC(Java DataBase Connection)是Java访问数据库的底层组件。JDO(Java Data Object)，Java的数据对象。Hibernate是目前最流行的O/R mapping框架。自动的将程序对象和数据表做映射，封装了数据库的操作。Hibernate的底层是JDBC。</p>
<h4>JUnit</h4>
<p>开源的单元测试框架。是利用反射机制实现的。</p>
<h4>Eclipse/MyEclipse</h4>
<p>Eclipse如日中天的开发环境IDE。MyEclipse是建立在Eclipse基础上的升级版，提供很多功能，使得开发JavaEE更加容易。其他IDE还有NetBeans, JBuilder等等。</p>
<h4>Apache/Tomcat</h4>
<p>Apache是一个组织。作了很多开源的东西。其中最著名的就是Apache/Tomcat了。Apache/Tomcat是类似IIS那样的网络服务平台。作为JavaEE, PHP, Asp.net(mono)等等网络服务器的底层运行平台。一般来说，JavaEE编译好的文件要部署到Apache/Tomcat才可以浏览。</p>
<h4>Subversion(SVN)/CVS</h4>
<p>版本控制工具。CVS是老牌的，Subversion是摒弃CVS的一些缺点的新型版本控制工具。TortoiseSVN是SVN的可视化版本。</p>
<h4>Ant</h4>
<p>程序构建工具。make/makefile等的替代品。集成了编译、部署等功能。这个基本没有怎么研究过，所以不多说了。</p>
<h4>Ecside</h4>
<p>国人开发的报表。表示层控件。开源的。</p>
<p>to be continue&#8230;</p>
<p>JBoss/Weblogic</p>
]]></content:encoded>
			<wfw:commentRss>http://liujiong.com/blog/posts/javaee-summary/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

