这里写了一个简单的例子来说明这种模式,其实写这个例子主要是自己想熟悉一下 jdk5 的 concurrency 包中 futuretask 的用法了。例子模拟的是一个会计算账的过程,主线程中已经获得其他帐户的总额了,为了不让主线程等待 privateaccount 返回而启用新的线程去处理,并使用 futuretask 对象来监控,最后需要计算总额的时候再尝试去获得 privateaccount 的信息。
代码如下:
既然得到了好书就要分享一下,这里不多做介绍了,赶紧把电子版传上来跟大家分享一下。
我们从mysql downloads page上下载了mysql 5.1 beta版,安装到xp上,启动mysql服务,用root用户打开mysql客户端:
mysql> use test;
database changed
mysql> create table test.t (s1 timestamp);
query ok, 0 rows affected (0.11 sec)
mysql> create event e on schedule every 1 second do
insert into test.t values (current_timestamp);
query ok, 1 row affected (0.00 sec)
mysql> set global event_scheduler = 1;
query ok, 0 rows affected (0.00 sec)
/* 3-second delay */
mysql> select * from test.t;
---------------------
| s1 |
---------------------
| 2006-04-05 15:44:26 |
| 2006-04-05 15:44:27 |
| 2006-04-05 15:44:28 |
---------------------
上面是mysql “事件”特性的“hello world”例子,给大家演示的是每隔一秒钟向行内插入一条时间的记录。
方法
1
:
通过
vpn
网络,让自己在美国或加拿大的朋友为自己建立一个
vpn
的网络,然后拨号过去,再启动一个
skype
,就可以实现。够简单吧,呵呵,我说起来当然简单了,但做起来就不一定了。
这里最难的就是如何架设
vpn
网络了,首先讲怎么建立
vpn
服务器,其实这个在
xp
中就自带了,大家可以根据我的教程试试看。不过这里的
vpn
服务器一定要是美国加拿大本地的,你可以跟那里的朋友说好,让他
24
小时开机就可以了。
建立
vpn
网络服务器的连接教程如下:
微软的
vpn
教学如下:
而如何让客户端拨号到
vpn
网络的方法也很简单,步骤如下:
开始
-->
连接到
-->
显示所有连接或者是控制面板
-->
网络连接
-->
新建连接
-->
选择连接到我的工作场所的网络
-->
虚拟专用网络连接
-->
输入一个你想要工作场所的名字(随意输入)
-->
如果你是拨号上网的用户,最好选择自动的初始连接为你的拨号连接,其他的就无所谓的
-->
然后输入你的主机的
ip
地址就
ok
了。
最后就是双击这个新的连接,输入你设置的用户名和密码就好了。
这里我补充一点,很多人想过使用代理服务器来实现,但必须保证你的
skype
的通向外网的连接都通过这个服务器实现。
方法
2
:
更简单,不需要设置什么
skype
专用的
vpn
,那就是使用
skype
的三方通话,首先让美加本地的一台电脑拨打你需要的那个号码,然后在邀请你的
skype
加入三方通话,这样你就可以实现拨打美加的电话了。其实这样也是很方便的,让对方的电脑给你开一个远程用户,你需要的时候只要登陆他的电脑,然后用
skype
拨打本地号码,接通后邀请国内的
skype
就可以了。
方法
3
:
还有很多灵活的方法,大家也可以提供讨论一下,最后的方法就是找我咯, ^_^ ,写信或者留言给我都行。
2004 年 6 月 01 日
在这一节中,我们简要地描述了面向服务的体系结构的发展。然后,我们探究了面向组件的开发与面向服务的体系结构之间的关系,并且说明了如何将组件作为实现服务的基础设施。
虽然 it 经理一直面临着削减成本和最大限度地利用现有技术的难题,但是与此同时,他们还必须不断地努力,以期更好地服务客户,更快地响应企业战略重点,从而赢得更大的竞争力。
在所有这些压力之下,有两个基本的主题:异构和改变。现在,大多数企业都有各种各样的系统、应用程序以及不同时期和技术的体系结构。集成来自多个厂商跨不同平台的产品简直就像一场噩梦。但是我们也不能单单使用一家厂商的产品,因为改变应用程序套件和支持基础设施是如此之难。
在当今 it 经理面临的问题之中,改变是第二个主题。全球化和电子商务加快了改变的步伐。全球化带来了激烈的竞争,产品周期缩短了,每个公司都想赢得超过竞争对手的优势。在竞争产品和可以从 internet 上获得的大量产品信息的推动下,客户要求更快速地进行改变。因而,在改进产品和服务方面展开的竞争进一步加剧了。
为了满足客户提出的越来越多的新要求,技术方面的改进也在不断地加快。企业必须快速地适应这种改变,否则就难以生存,更别提在这个动荡不安竞争激烈的环境中取得成功了,而 it 基础设施必须支持企业提高适应能力。
因此,企业组织正在从上世纪八十年代或更早的时期的相互隔离的垂直业务部门,到上世纪八十年代和九十年代关注业务流程的水平结构,向新的生态系统业务范例发展。重点是扩展供应链,支持客户和凯发k8网页登录的合作伙伴访问业务服务。第 19 页的图 2-1 展示了企业的这种发展。
我如何使我的 it 环境更灵活且更快地响应不断改变的业务需求呢? 我们如何使这些异构系统和应用程序尽可能无缝地进行通信呢?我们如何达到企业目标而不使企业走向破产的深渊呢?
it 响应者/支持者是随着企业的这种发展而并行发展的,如图 2-2 所示。现在,许多 it 经理和专业人员都同样相信,我们真的快找到了一种满意的答案——面向服务的体系结构。
图 2-2 体系结构的发展
为了减少异构性、互操作性和不断改变的要求的问题,这样的体系结构应该提供平台来构建具有下列特征的应用程序服务:
基于这样的面向服务的体系结构,服务使用者甚至不必关心与之通信的特定服务,因为底层基础设施或服务“总线”将代表使用者做出适当的选择。基础设施对请求者隐藏了尽可能多的技术。特别地,来自不同实现技术(如 j2ee 或 .net)的技术规范不应该影响 soa 用户。如果已经存在一个服务实现,我们就还应该重新考虑用一个“更好”的服务实现来代替,新的服务实现必须具有更好的服务质量。
|
|
自从“软件危机”促进软件工程的开创以来,it 界一直在努力寻求解决上述问题的方案。在过去几年里,下面简要概述的核心技术进展使我们走到了今天。我们将简要讨论这些核心技术,而我们重点关注的将是这些技术如何帮助解决 it 问题。
在“applying uml and patterns - an introduction to object-oriented analysis and design”中,larman 将面向对象的分析和设计的本质描述为“从对象(物体、概念或实体)的角度考虑问题域和逻辑凯发天生赢家一触即发官网的解决方案”。在“object-oriented softwareengineering: a use case driven approach”中,jacobson 等将这些对象定义为“特点在于具有许多操作和状态(记忆这些操作的影响)的物体”。
在面向对象的分析中,这样的对象是用问题域来标识和描述的,而在面向对象的设计中,它们转变成逻辑软件对象,这些对象最终将用面向对象的编程语言进行实现。
通过面向对象的分析和设计,可以封装对象(或对象组)的某些方面,以简化复杂业务场景的分析。为了降低复杂性,也可以抽象对象的某些特征,这样就可以只捕获重要或本质的方面。
基于组件的设计并不是一种新技术。它是从对象范例中自然发展而来的。在面向对象的分析和设计的早期,细粒度的对象被标榜为提供“重用”的机制,但是这样的对象的粒度级别太低了,没有适当的标准可以用来使重用广泛应用于实践之中。在应用程序开发和系统集成中,粗粒度组件越来越成为重用的目标。这些粗粒度对象通过内聚一些更细粒度的对象来提供定义良好的功能。通过这种方式,还可以将打包的凯发天生赢家一触即发官网的解决方案套件封装成这样的“组件”。
一旦组织在更高层次上实现了基于完全独立的功能组件的完备体系结构,就可以将支持企业的应用程序划分成一组粒度越来越大的组件。可以将组件看作是打包、管理和公开服务的机制。它们可以共同使用一组技术:实现企业级用况的大粒度企业组件可以通过更新的面向对象的软件开发与遗留系统相结合来实现
在“component-based development for enterprise systems”中,allen 涉及了服务的概念,“它是将组件描述成提供相关服务的物理黑盒封装的可执行代码单元。它的服务只能通过一致的已发布接口(它包括交互标准)进行访问。组件必须能够连接到其他组件(通过通信接口)以构成一个更大的组”。服务通常实现为粗粒度的可发现软件实体,它作为单个实例存在,并且通过松散耦合的基于消息通信模型来与应用程序和其他服务交互。第 22 页的图 2-3 展示了重要的面向服务术语:
在组件和服务开发中,都需要进行接口设计,这样软件实体就可以实现和公开其定义的关键部分。因此,在基于组件和面向服务的系统中,“接口”的概念对于成功的设计非常关键。下面是一些与接口有关的重要定义:
第 23 页的图 2-4 定义了客户关系管理 (crm) 服务的 uml 定义,它表示为一个 uml 组件,实现接口 accountmanagement、contactmanagement 和 systemsmanagement。在这些接口中只有头两个接口是已发布接口,不过,后者是公共接口。注意,systemsmanagement 接口和 managementservice 接口构成了双接口。crmservice 可以实现许多这样的接口,但是它以多种方式行为的能力取决于客户端在行为的实现方面是否允许有大的灵活性。甚至有可能给特定类型的客户端提供不同或附加的服务。在一些运行时环境中,这样的功能也用于在单个组件或服务上支持相同接口的不同版本。
如前所述,面向对象的技术和语言是实现组件的极好方式。虽然组件是实现服务的最好方法,但是您必须理解的一点是,好的基于组件的应用程序未必就构成好的面向服务的应用程序。一旦理解了服务在应用程序体系结构中所起的作用,组件开发人员就很有可能会利用现有的组件。进行这种转变的关键是认识到面向服务的方法意味着附加的应用程序体系结构层。第 24 页中的图 2-5 演示了如何将技术层应用于程序体系结构以提供粒度更粗的实现(它更靠近应用程序的使用者)。为称呼系统的这一部分而创造的术语是“应用程序边界”,它反映了服务是公开系统的外部视图的极好方法的事实(通过内部重用并结合使用传统组件设计)。
|
|
面向服务的体系结构提供了一种方法,通过这种方法,可以构建分布式系统来将应用程序功能作为服务提供给终端用户应用程序或其他服务。其组成元素可以分成功能元素和服务质量元素。第 25 页的图 2-6 展示了体系结构堆栈以及在一个面向服务的体系结构可能观察到的元素。
注意:面向服务的体系结构堆栈可能是一个容易引起争议的问题,因为各方面的支持者已经提出了几种不同的堆栈。我们的堆栈不是作为服务堆栈提出的。我们之所以在此提出它,是因为我们想要搭建一个有用的框架,在本书的剩余章节中,我们将通过这个框架来组织对 soa 的讨论。
体系结构堆栈分成两半,左边的一半集中于体系结构的功能性方面,而右边的一半集中于体系结构的服务质量方面。这些元素详细描述如下:
功能性方面包括:
服务质量方面包括:
图 2-7 展示了面向服务的体系结构中的协作。这些协作遵循“查找、绑定和调用”范例,其中,服务使用者执行动态服务定位,方法是查询服务注册中心来查找与其标准匹配的服务。如果服务存在,注册中心就给使用者提供接口契约和服务的端点地址。下图展示了面向服务的体系结构中协作支持“查找、绑定和调用”范例的实体。
面向服务的体系结构中的角色包括:
面向服务的体系结构中的每个实体都扮演着服务提供者、使用者和注册中心这三种角色中的某一种(或多种)。面向服务的体系结构中的操作包括:
面向服务的体系结构中的构件包括:
除了动态服务发现和服务接口契约的定义之外,面向服务的体系结构还具有以下特征:
这些特征也是满足电子商务按需操作环境的要求的主要特征,如第 301 页“e-business on demand and service-oriented architecture”所定义的。
最后,我们需要说明的是,面向服务的体系结构并不是一个新的概念。如图 2-8 所示,面向服务的体系结构所涉及的技术至少包括 corba、dcom 和 j2ee。面向服务的体系结构的早期采用者还曾成功地基于消息传递系统(如 ibm websphere mq)创建过他们自己的面向服务企业体系结构。最近,soa 的活动舞台已经扩展到包括 world wide web (www) 和 web 服务。
在面向服务的体系结构中,映射到业务功能的服务是在业务流程分析的过程中确定的。服务可以是细粒度的,也可以是粗粒度的,这取决于业务流程。每个服务都有定义良好的接口,通过该接口就可以发现、发布和调用服务。 企业可以选择将自己的服务向外发布到业务凯发k8网页登录的合作伙伴,也可以选择在组织内部发布服务。服务还可以由其他服务组合而成。
服务是粗粒度的处理单元,它使用和产生由值传送的对象集。它与编程语言术语中的对象不同。相反,它可能更接近于业务事务(如 cics 或 ims 事务)的概念而不是远程 corba 对象的概念。
服务是由一些组件组成的,这些组件一起工作,共同提供服务所请求的业务功能。因此,相比之下,组件比服务的粒度更细。另外,虽然服务映射到业务功能,但是组件通常映射到业务实体和操作它们的业务规则。作为一个示例,让我们看一看 ws-i 供应链管理(ws-i supply chain management)样本的定购单(purchaseorder)组件模型,如图 2-9 所示。
在基于组件的设计中,可以创建组件来严格匹配业务实体(如顾客(customer)、定购单(purchase order)、定购项(order item)),并且封装匹配这些实体所期望的行为的行为。
例如,定购单(purchase order)组件提供获取关于已定购的产品列表和定购的总额的信息的功能;定购项(order item)组件提供获取关于已定购的产品的数量和价格的信息的功能。每个组件的实现都封装在接口的后面。因此,定购单(purchase order)组件的用户不知道定购单(purchase order)表的模式、计算税金的算法、以及定单总额中的回扣和/或折扣。
在面向服务的设计中,不能基于业务实体设计服务。相反,每个服务都是管理一组业务实体中的操作的完整单元。例如,顾客服务将响应来自任何其他系统或需要访问顾客信息的服务的请求。顾客服务可以处理更新顾客信息的请求;添加、更新、删除投资组合;以及查询顾客的定单历史。顾客服务拥有所有与它管理的顾客有关的数据,并且能够代表调用方进行其他服务查询,以提供统一的顾客服务视图。这意味着服务是一个管理器对象,它创建和管理它的一组组件。
|
|
如前所述,企业正在处理两个问题:迅速地改变的能力和降低成本的要求。为了保持竞争力,企业必须快速地适应内部因素(如兼并和重组)或外部因素(如竞争能力和顾客要求)。需要经济而灵活的 it 基础设施来支持企业。
我们可以认识到,采用面向服务的体系结构将给我们带来几方面的好处,有助于我们在今天这个动荡的商业环境中取得成功:
soa 提供了一个抽象层,通过这个抽象层,企业可以继续利用它在 it 方面的投资,方法是将这些现有的资产包装成提供企业功能的服务。组织可以继续从现有的资源中获取价值,而不必重新从头开始构建。
在面向服务的体系结构中,集成点是规范而不是实现。这提供了实现透明性,并将基础设施和实现发生的改变所带来的影响降到最低限度。通过提供针对基于完全不同的系统构建的现有资源和资产的服务规范,集成变得更加易于管理,因为复杂性是隔离的。当更多的企业一起协作提供价值链时,这会变得更加重要。
从现有的服务中组合新的服务的能力为需要灵活地响应苛刻的商业要求的组织提供了独特的优势。通过利用现有的组件和服务,可以减少完成软件开发生命周期(包括收集需求、进行设计、开发和测试)所需的时间。这使得可以快速地开发新的业务服务,并允许组织迅速地对改变做出响应和减少上市准备时间。
通过以松散耦合的方式公开的业务服务,企业可以根据业务要求更轻松地使用和组合服务。这意味资源副本的减少、以及重用和降低成本的可能性的增加。
通过 soa,企业可以未雨绸缪,为未来做好充分的准备。soa 业务流程是由一系列业务服务组成的,可以更轻松地创建、修改和管理它来满足不同时期的需要。
soa 提供了灵活性和响应能力,这对于企业的生存和发展来说是至关重要的。但是面向服务的体系结构决不是灵丹妙药,而迁移到 soa 也并非一件可以轻而易举就完成的事情。请别指望一个晚上就将整个企业系统迁移到面向服务的体系结构,我们推荐的方法是,在业务要求出现或露出苗头时迁移企业功能的适当部分。
原始 url:
这两天看到了一篇不错的关于 soa 的文章,不敢独享,只可惜是 e 文,所以抽空翻译了一下,跟大家分享。
以下为本博客使用说明
我们的
blogjava
博客特别为大家的方便阅读提供了以下快捷功能:
需要查找关键字―――――――――――――――――请按
ctrl
+
f
想以后还能看(添加到收藏夹)――――――――――请按
ctrl
+
d
想刷新一下网页内容―――――――――――――――请按
f5
(应该不需要的,因为
blogjava
已经完全实现了
ajax
)
想保存到硬盘上―――――――――――――――――请按
ctrl
+
s
需要调用本地(
jini
)服务查看源代码――――――――在网页空白处点击鼠标右键+
v
不想看了――――――――――――――――――――请按
alt
+
f4
如果是标签页浏览器―――――――――――――――请按
ctrl
+
w
实话说,我们比
google
的
gmail
还早实现方便的快捷方式,厉害吧。这里不需要对我表示敬意,只需要对博客的建设者
dudu
老兄留言表示一下感谢就好了。
在开始的时候先介绍一下 soa 的概念。
什么是 soa ?
soa 的全称是 service oriented architecture ,面向服务架构。
她是指为了解决在 internet 环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。这句话的意思就是 soa 不是一门语言或具体的技术,而是一种软件的系统架构,应该说更像一种模式,是一种为了解决复杂的 internet 业务应用而提出的一种体系结构(在我感觉里,这种架构的提出更像 mvc 模式的提出,不过我们总喜欢用模式啊,架构啊的话来体现自己是行业内专业的人,但其实无论说是模式还是架构,这都只是一些名词,如果组合现拥有的技术去实现自己的应用才是最有用的,就不用多谈所谓的架构还是模式了)。
译文 ( 翻译:陈朋奕,如果有错误请来我的博客指出 ) :
在做软件开发的人,架构这个词经常被用在三种不同的场合中:应用体系架构( application architecture ),基础体系架构 (infrastructure architecture) 以及企业架构体系 (enterprise architecture) 。而 soa 的概念横跨了这三种体系,然而很多人在谈到 soa 的时候总喜欢不自觉的把 soa 跟其中的一种混为一谈。
譬如开发者大多对如何建立 soa 应用感兴趣,因此他们关注的趋向更多是 soa 中的应用程序的体系架构方面。而 web serivces 管理工具的卖主一般认为 soa 主要是关于基础组件体系结构的,同样的,用户群体会认为 soa 是用于企业业务应用结构的。
这三种观点都是有意义的,因为这映射了 soa 的三个应用层面。下面是关于这三个方面的一些简单的讲解:
―――― soa 应用体系架构:是建立 soa 服务的指导、模式以及实现的方法。关注面向服务软件平台和个体应用的开发者会特别强调这个方面。如 microsoft’s windows communication foundation ( wcf 微软视窗通讯基础组件)以及最近提出的 service component architecture (sca 服务构件体系 ) 就是跟 soa 这个方面的应用实现。
―――― soa 基础体系架构:是管理和操作 soa 服务的指导、模式以及实现的方法。 soa 的大思想家们有时也会承认自己在这个方面有不足,但真正去实现这些功能的人却知道这些方面的重要性。一般来说,卖主会特别喜欢把关注点和行动实现集中在这里。
―――― soa 业务体系架构:利用 soa 并从 soa 中获得商业利益的指导、模式以及实现的方法。而关于技术的讨论仍然会在这里出现,但更多的关注点已经转移到了人的身上(以人为本?事实上,我对 soa 面临的最大挑战是人的观点——人通常比技术更多问题——有一些自己的看法)。不过,来自 zapthink 的分析家们通常对 soa 提出的建议都是在强调这个方面。
我看到过很多人关于 soa 的意义(甚至是价值)的争论,其实他们的争论只是关于应用程序体系架构主导还是企业体系架构主导而已。这些专业术语仅仅是在我们都认同的情况下才会体现其价值的,因此当别人在讨论这个被过度使用的术语的时候我们应该保持清晰的思路,清楚我们到底讲的是什么才是我们应该把握的方向。
也许这正是 java 无奈现状的体现吧,本来是大户人家的宝贝,现在变成沦落荒野的野马,要跟荒原的狐狗抢食 …… 在桌面程序上面,出了 ibm 那么热心的开发了 eclipse 之外,似乎 java 毫无建树,而 web 上, java 更是被 .net 和其他带脚本性质的语言蚕食领地, .net 当然是没话说的,因为这可是大户人家的孩子,身上带着微软皇族的血统,背靠如此雄厚的资本,自然不会弱,而 php/python 等语言也以其灵活的结构和多年积累的成熟的多样的开发框架一步一步的侵食 java 的领地,我想让 java 世界最痛心的也许不是这些,而是由 ruby 语言引起的 java 世界的内讧 ……
对 ruby 这门语言,说实话,我真的不以为然,甚至觉得这不算语言。当初学习 java 的时候,是从 c 语言转过来的, java 给我的印象真的太美丽了,那么美妙的结构,竟然能如此完美的用程序语言去体现世界。而接触 ruby ,一点也没有接触 java 时候的那种感觉,但是我不得不承认 ruby on rails 真的是快捷而且方便的 web 开发平台。那么轻松的几百行代码就能够完成 java ( jsp servlet )上千行代码(有个朋友跟我说,他尝试过将一个 java 的简单 web 程序,据说好像是网上商城,改到 ruby 平台,上 4 ~ 5 千行的 java 代码,仅仅用了 800 行 ruby 代码)。这样的结果难道还不够震撼吗?
java 语言的优美是大家公认的,但如果是为了仅有的优美而付出大量的劳动,真的必要吗?也许正如 lansa 公司的高级程序设计师 roc.chen 说的那样, java 更适合在学校里进行 oo 软件的教学,因为他真的很美丽。当年 smalltalk 也是很优美的语言,为什么还是没有流行呢?语言的流行程度也许真的跟优美有否没有直接关系,想来 vb 真的是一门很烂的语言,但如此流行,也不能不承认这个道理的正确性了。
也许改名是因为要将 java 这个重量级的语言从吃遍四方的笨重的老虎变成可以轻松跑跳的野马吧,现在 java 的世界太笨重了,有复杂的 ejb ,多种不互相兼容开发模式( tomcat/sunj2ee 等下各有各的开发模式),多个巨头在做自己不同的ide(eclipse /net beans/ idea/ j builders/ workshop等),多个企业在做自己的j2ee服务器(geronimo /web sphere/ weblogic等)……意见经常不能统一,在这点上我真的认同微软的方式,这样至少使用的人能很快的上手,能更快更好的完善自己的开发模式和开发平台。
我觉得 java 已经在让自己变得轻量级,变得灵巧了,让自己在各个方面都能适应快速开发,就像现在的 ruby 一样,而 spring 的受欢迎程度和《 j2ee without ejb 》的热卖也说明了这点。也许 ruby 语言的出现对 java 来说是好事,因为至少这打击不是致命的,能让 java 的设计者痛定思痛,寻求变革。
这 java 6 mustang 的出现也许正是为了这个目的吧。那下面就说说 java 6 的特点吧:
l 支持 web service ( java web 的开发心头之痛啊,终于搞定了)
l 提高 jvm 性能,对比 java 5.0 , mustang hotspot jvm 有 58 %的性能提升(早该如此了, java 的诟病就是慢,但我还没尝试过)
l 直接嵌入 jsr-223 规定的脚本语言
l 增加对 javascript 的支持,嵌入了 rhino (即 javascript )解释器(好东西来的,也许是因为 ruby 内置的 ajax 对其的影响吧)
l 支持 jdbc 4 规范
l 扩展 java.io.file ,充分利用磁盘空间
l 安全上新增了对 xml 数字签名的支持,整合 java generic security services 及 kerberos ,支持国际域名和资源标识符和网络参数标题访问
l 还有好多,不过就没前面的那么重要了
sun
已经提供了演示版本的下载,我已经下载了,同时也下载了
sun
的
net beans ide
,准备对这个新的
jdk
进行测试,测试结果会以最快的速度向同志们报告。
===============================================================================
/听了白痴兄弟的话,想说几句话/
上面只是我一个人的看法,也只是随便说说而已,犯不着大家这么生气的。况且这仅仅是晚上涂鸦写写,告诉大家一些消息,评论只是个人观点。
股利信号传递理论的实证分析工作由林特(john lintner,1956)首先研究。林特通过对美国600家上市公司财务经理的问卷调查和实证分析,得出股利传递公司盈利信号内容的实证结果。他认为,在1946—1954年间,美国各上市公司一般都保持一个长期的目标股利支付率,公司的股利变化与长期可持续的净收益水平相一致;公司管理者特别注重股利水平的变化,除非管理者确信公司增长的收益足以支付长期增加的股利时,才会增发股利,并且,公司管理者不会轻易削减股利。
股利分配代理成本理论。该理论是由詹森、迈克林(jensen and meckling,1976)和伊斯特布鲁克(easterbrook,1984)创立的。詹森和迈克林以委托—代理理论为研究框架,通过研究公司股东、管理者和债权人三者的利益动机及分配关系,得出股利分配代理成本理论。他们认为,股东为避免自身利益损失,要监督和约束管理者的行为,势必导致代理成本的发生。但股东越保守,代理成本就越高,对债权人就越有利,对股东就越不利。因此,股东需要在这两者之间平衡利弊得失。伊斯特布鲁克认为,股利支付可以降低代理成本。股东可以通过保持一个稳定不变的股利支付水平,以避免权益资本的累积,同时,又促使企业向外部筹资。这就迫使管理者必须全力以赴经营企业,才能以优良的业绩在资本市场上筹集资金。结果,股东可以通过调节企业的负债比例来降低代理成本,以实现自身利益最大化。这就解释了为什么有些公司在发放股利的同时又对外筹资的现象。
股利顾客效应理论。该理论最先也是由米勒和莫迪格利安尼提出来的。他们注意到,有些股东偏好未来的资本利得,从而购买当期股利支付率低但成长性好的股票;有些股东则倾向于当期股利收入,因而喜欢股利支付高的股票,即所谓的股利顾客效应。mm认为,既然公司不可能同时满足所有股东的利益要求,公司就不必考虑股东对股利的具体意愿,而应根据自身的特点制定适合企业生产经营需要的股利政策,并且自然有一批投资者偏好公司的股票。
由于是转载自,因此不做任何修改。如果作者有意见可以跟我联系,我立刻撤下。
1、解释“需求价格”和“供给价格”的概念,没有这两个概念均衡价格理论能否成立?它们在均衡价格理论中有何意义?
2、在完全竞争的假定条件下,厂商理论是怎样说明市场的长期均衡机制的?
3、什么是经济租金?它与生产者剩余有何关系?
4、在“is-lm”模型中,产品市场与货币市场相互影响的传导机制是什么?如何操纵lm曲线来改变双重均衡状态?
5、为什么凯恩斯主义者认为“年平衡预算政策”是一种不可取的财政政策?
一、论述题(每题20分,共40分)
1、货币主义者和凯恩斯主义者关于“财政政策有效还是货币政策有效”的争论焦点在何处?为什么?
2、简述一般均衡过程的条件和保证其实现的机制,你认为一般均衡理论能否概括市场经济运行的基本经济关系?
南开大学1995年硕士入学考试
1、举例说明,货物税由消费者和卖者各负担的程度取决于需求价格弹性和供给价格弹性的大小。
2、怎样从消费行为来推导个人需求曲线?
3、什么是福利三角形,它是怎样形成的?
4、为什么说个人的劳动供给曲线会呈弓形,它是怎样推导出来的?
5、以劳动这个生产要素为例,说明厂商在产品市场处于卖方垄断时和在劳动市场处于买方垄断时,对劳动的剥削。
一、 论述题(共40分)
1、 财政赤字是否必然会引起通货膨胀?为什么?
2、is-lm模型中产品市场和货币市场相互影响的传导机制是什么?你认为它们在中国是否也同样起作用?为什么?
南开大学1996年硕士入学考
1、 如何根据“效用最大化”消费行为推导消费者个人的需求曲线?
2、 用图示说明长期成本曲线与短期成本曲线的关系。
3、 简述以边际生产力为基础的收入分配理论。
4、 “gnp-折旧-间接税=ni”与“有一美元收入就有一美元的最终产品”是否矛盾?为什么?
5、 简要说明浮动汇率制度下,国际收支与汇率的关系。
6、 什么是拉弗曲线?请简要加以解释。
二、 计算题(20分)
1、 某图书出版公司是在两个相互独立的市场上进行销售的垄断厂商,它在第一个市场的边际收益曲线为:mr1=20-2q1,在第二个市场的边际收益线为:mr2=15-3q2,q1和q2分别为两个市场上的日销售量。如果一本书的边际成本为6美元,该厂商在这两市场分别销售多少本书?
2、 已知:c=200+4/5dint=-225+1/4ni
i=100gp=200
(1) 求均衡国民收入。
(2) 如果充分就业的均衡国民收入为1950,怎样才能达到充分就业状态?
三、 论述题(20分)
以下两题中,参加全国统考的答第一题;参加单考的答第二题。
1、货币主义者和凯恩斯主义者之间,关于问题的争论焦点集中在货币流通速度上?为什么?
2、在完全竞争条件下,厂商的长期均衡和市场均衡是怎样联系在一起的。
南开大学1997年硕士入学考试
1、如图所示:消费者效用最大化的均衡条件是什么?如果消费者的消费点在a点,用公式表示他处于什么状态,他将怎样调整才能达到效用最大化?
2、以边际生产力为基础的收入分配理论是怎样在收入分配公式和生产函数之间建立联系的。
4、请用图示简要推导出外部均衡曲线(eb曲线)
一、 计算题(20分。每题10分;马列答3、4题,其它专业答1、2题)
1、已知某一垄断厂商的边际成本曲线为一直线:mc=60+2q其中,mc为边际成本,q为产量;厂商面对的需求曲线为:p=100-q;其中p为产品价格。求利润最大化的产量q和价格p。
2、柯布-道格拉斯生产函数为q=a lαkβ;式中,q为产出量,l为劳动投入量,k为资本投入量,a,α ,β为该函数中既定的参数。求mrtsl , k;mpl;mpk
3、已知某商品的需求函数为:p=70-2q 该商品的供给函数为:p=10+2q 其中,p为价格,q为产量。求:均衡价格p和均衡产量q。
4、画出第三题中的需求函数图像和供给函数图像;并标出均衡点e的位置,以及均衡产量q和p。
三、论述题(40分,每题20分)
1、 比较完全竞争、完全垄断、垄断竞争这三者在市场结构,均衡条件等方面的异同;并对它们作为不同产品分配方式的利弊得失做出分析。
财政赤字产生的原因有哪些?为什么要将自动的财政政策与相机抉择的财政政策加以区分。你主为要使这种区分变得具有可操作性,尚需具备哪些条起因: qq最近在其官方网站上推出了qq2005 beta3版,吸引了很多用户试用。这本来是件好事情,却爆出了这个版本的qq可能含有病毒的消息。(延伸阅读:网友怒曝:qq 2005 beta3版带会自动改名的病毒)
为了证实这个消息的真实性,我赶紧到上下载了一个qq2005 beta3,进行了详细而认真的测试。
以下是测试结果:
1、这个版本的qq安装时,生成4个额外的病毒文件:这个版本的qq安装完毕后,除了生成qq正常使用的文件外,的确会在系统文件夹c:\windows\downlo~1下生成多余的4个文件,其中2个为dll动态库文件,1个为exe可执行文件,一个为dat数据文件。这4个文件互相配合,形成了一套功能完备的病毒程序(病毒行为详见后面的分析)
2、病毒文件会在系统注册表中增加一个独立于qq启动项之外的启动项:这4个文件被创建后,会在系统注册表中增加一个名为“_tbhtray”的启动项,路径指向刚才所发现的2个dll文件中的一个,以保证这些文件能在系统启动时被自动加载。因此,他们的自我启动,在此时与qq是否存在无关了
3、病毒文件采用多种方法实现自我隐藏:不知出于何种目的,这4个文件在自我隐藏方面可谓煞费苦心,集多个典型病毒的隐藏方法于一身,分别是:
文件名随机生成,即便在同一台电脑上,每次安装qq2005 beta3,这4个文件的文件名都不相同,使得你很难找到 调用系统函数,将自身的文件属性设置为系统级,使得在windows窗口模式下根本无法看到这些病毒文件,必须使用dos命令行模式才可看到。
无论你何时安装,它会自动将dll文件的生成时间设置为2005-9-8 16:38,这是qq 2005beta3证实发布之前的日期,使你很容易忽略和qq 2005 beta3的联系。
4、该病毒使用钩子技术实现了自我保护机制,使用户根本无法手工删除该病毒
在系统的最底层,挂了一个debug钩子,这个钩子随着系统的启动而启动,即使在安全模式下也会运行,保证从最底层获得系统的控制权。
此外,该病毒还另外挂了cbt钩子和键盘监视钩子,这两个钩子和前面提到的debug钩子相互配合,互相保护,不断刷新系统注册表及自身文件列表,一旦发现注册表项或文件项被删除,即会自动重新创建。这三个钩子均无法手工停止,即便杀死qq所有的进程后依然在工作。
5、该病毒具备自我升级机制,会绕开防火墙随时从互联网上升级到更新的版本
该病毒的exe文件负责客户端与互联网服务器的通信与升级,此exe文件在用户每次打开ie时都会向互联网服务器发回信息,并根据服务器的指令决定是否升级。由于该程序利用了ie访问网络的80端口,因此会绕开绝大多数的网络防火墙,使得升级在不知不觉在进行!
6、该病毒记录了用户上网所一举一动,并很有可能将这些内容打包发给了它的服务器
由于该病毒在系统中挂了一个键盘钩子和cbt钩子,它截获并记录用户使用电脑的一举一动,包括访问的网址,地址栏输入的内容,搜索词,用户名及密码等。同时我还发现,在我打开ie 时,这个病毒均会向服务器会传一大堆的数据,由于这些数据已经加密,我无法获知究竟是什么内容,但根据数据排列和信息量来看,极有可能是用户上网的访问记录等极其敏感的隐私信息!
7、该病毒在qq卸载后依然会存在在用户的机器中,无法彻底清除
如果将qq 2005 beta3卸载掉,这个时候,病毒文件依然会保留在机器里,并不被卸载掉。如果重新安装一遍,由于病毒的文件名是随机生成的,则又会在系统中增加一整套病毒文件。往复几次,则硬盘中的病毒文件数量将触目惊心!这些病毒文件互相嵌套,关系错综复杂,使得用户根本无法分清彼此间的关系,根本无法将该病毒彻底清除干净!
综上所述,此程序已经具备了病毒所有的特性:自我隐藏、自我变形、自我保护、快速传播、截获用户输入、悄悄升级等,因此,我可以得出颇为肯定的结论:
在qq官方网站推出的qq 2005 beta3内嵌了一个地地道道的病毒程序!
由于分析工作没有全部完成,加之该病毒正处在潜伏期,目前还不是很清楚该病毒程序所做的一切行为,但目前已经能对该病毒的危害得出一定的结论了。该病毒会产生的危害有:
1、降低系统稳定性,导致部分用户电脑崩溃
由于该病毒中滥用文件变名、debug钩子、自我保护等技术,使得系统稳定性大受影响。测试期间,测试机多次停止响应。如果使用工具强制删除掉该病毒其中的某个dll文件,由于该病毒自我保护机制的不成熟,甚至会使得启动无法启动。
由于qq是全国装机量最大的软件,覆盖在上千万台电脑上,只要以上问题出现概率大于1%(事实上我测试时接近10%),必将导致数十万的用户无法继续使用电脑,危害相当严重!!
2、急剧降低系统性能
由于该病毒在不断的刷新注册表、文件列表,同时利用钩子截获用户的所有输入,因此使得系统性能极具下降,这种下降在打开ie时表现得尤为明显。在未安装此病毒的测试机上,连续打开10个ie后,再打开ie窗口的速度与没有明显减慢;在已安装此病毒的测试机上,打开第一个ie窗口时就明显感觉到顿挫感,在打开第10个窗口时,常需数秒以上,最长时甚至长达1分钟,无法忍受!!
在访问新浪、搜狐等大型网站时,也能明显感觉到打开网页的速度明显降低,常常点击链接后机器失去响应数秒。
3、窃取用户隐私
该病毒截获了用户所有的输入,因此安装了该病毒的机器即无隐私可言,上网的网址、输入的用户名、密码、搜索用过的搜索词均会被该病毒截获。最严重的,如果用户在机器上使用过银行的网上支付系统,则存在极大的风险丢失卡号及密码,被偷盗钱财。
4、有可能在互联网上引发又一次轮蠕虫冲击波,导致互联网瘫痪
由于附着在qq上,所以该程序会以每天近百万的速度散播在互联网上,不需要太久,它将在数千万台电脑上潜伏。如果该病毒象其它病毒一样,集中在一天内爆发,那将是比冲击波更大的灾难,整个互联网,用户的机器,都将瘫痪,后果不堪设想!!
对于这样严重的病毒事件,强烈要求腾讯公司给出明确说法并对广大用户公开道歉!此外,我已经把这病毒程序提交给了诺顿、卡巴司机等多个病毒厂商,希望他们尽快能将其加入最新病毒库,保障网民的安全!同时我也奉劝广大互联网用户,在该问题解决之前,不要下载安装qq 2005 beta3
结果:
今天看了这篇通告:
尊敬的用户:
腾讯qq2005 beta3中,有一个可选择安装的地址栏搜索插件。该插件采用了“动态文件名”技术,此项技术在一些反病毒软件中可能引起误报,可能会给部分用户带来困扰,对此我们深表歉意。
为此,我们修正了地址栏搜索插件,去除了容易误会的“动态文件名”技术,用户可以自主选择是否下载升级。
感谢广大用户对腾讯公司的关爱和支持。
腾讯公司
二oo五年九月三十日
评论:
我想肯定是qq安全中心(和金山毒霸合作搞的)拿我们用户当试验品,而腾讯公司为了逃避责任,力图欺骗qq大众不懂技术,用"动态文件名"来蒙我们.没有一点诚意!
同时我警告一些杀毒软件公司不要干一些违背职业道德的事,会遭到大众的漫骂的.
必须公开道歉!
【文章结束】
作者说得似乎有点危言耸听,不过俺还是不发表评论的好,呵呵,只是今天donews又把这件事情翻起来抄,觉得有意思,所以将内容转过来给咱们blogjava的人看看。
btw:前段时间下了lumaqq旧版的源代码,分析了一下,程序比较大,不知道什么时候才能看完,毕竟lumaqq是java编写的,而且功能还比较强(呵呵,可以通过插件发现隐身的朋友哦,够实在了吧),其他的如gaim这些跟java八辈子打不到一起,而jxta在国内基本没有了声息,郁闷啊,以前还花了几个星期功夫把jxta的教程看完了,以为可以赶上躺,凑个热闹,可惜啊……
mysql支持not null的列约束,如:
create table t (
column1 int not null,
column2 int not null);
这并非mysql约束的全部功能,但是还是不能做到只允许两列中其中一列可以为空或者让列1数值在1到5之间,又或者使列1在某些特殊情况下可以为空。不过,我们可以使用视图的定义通过下面的方法实现:
create table t (column1 int, column2 int);
create view v as
select column1, column2 from t
where (column1 is not null or column2 is not null)
and column1 between 1 and 5
with check option;
之后就可以通过对视图v进行插入或更新,达到我前面所需要的效果,在特殊情况下允许为空。
是不是比较有用呢?前面我写了篇关于mysql子查询的文章,但有了视图其实可以免去部分使用子查询的情况,大家看看下面这个例子吧:
示例:子查询的替代
在mysql 4.1版本以后就开始支持from语句中的子查询了,例如:
select *
from (select * from t2 union select * from t3) as t2_t3;
但是下面这样做会更好:
create view t2_t3 as
select * from t2 union select * from t3;
select * from t2_t3;
把这个转化为对视图的查询会更好更方便,因为你可能会使用复杂的对大数字的查询语句(比方说55个字),语句中包括对系统变量的一些定义,那如果有人改变了表t2,你可能要改这个55字的select语句,然而使用视图,一切都没变,你需要改的只是视图定义中的表名。
另一个子查询的例子:在mysql 5.0.3中不允许使用avg(distinct ...),因为下面这个语句是非法语句:
select avg(distinct column1) from t;
但采用下面方法能实现一样的效果,而且是合法的:
create view v as select distinct column1 from t;
select avg(column1) from v;
下面是中文版的下载地址:
转载时保留个人及出处信息,否则可能被视为侵权,呵呵。
如果需要英文原版,可以到下面地址下载:
根据上图的收益分布,我们可以比较明显的看到,当[λ1 /(λ1 λ2 λ3)]*(r-£) £-c>[λ1 /(λ1 λ2 λ3)] *r, 即£-[λ1 /(λ1 λ2 λ3)]*£-ca>0 ,也就是说,l从侵害其他各方的行为中获得的收益大于成本和因侵害带来的收益总数减少的份额之和时,就会选择侵害其他股东的利益,而在l选择侵害的情况下,只要[λ2/(λ1 λ2 λ3)]* (r-£) +[λ2 /(λ1 λ2)]£-cb>[λ2/(λ1 λ2 λ3)]* (r-£) - [λ2 /(λ3 λ2)]* £,m就会选择制衡,即当λ2£[1 /(λ1 λ2) +1/(λ3 λ2)] > c时,也就是说,当m的制衡收益(或是挽回的损失)高于其成本时,m的占优策略是选择制衡;而对于s来说,无论在任何情况下,制衡都不可能出现利己的结果,所以s更倾向于“搭便车”,或是以“用脚投票”的方式选择退出。当l选择侵害时,对整个公司而言,此时总收益为r-c,小于各方都不侵害(或制衡)时的收益r,所以这是一种非效率的均衡状态,必须通过博弈规则的修改实现向效率均衡的转变。
可以考虑三种途径,第一,降低λ1 /(λ1 λ2 λ3)的值,直至£-[λ1 /(λ1 λ2 λ3)]*£> ca,也就是优化股权结构,通过不同股东之间的相互制衡降低控制股东侵害中小股东利益时获得的额外收益。第二种,降低£的值,直至[(λ2 λ3) /(λ1 λ2 λ3)]*£< ca,也即在现有股权结构下,通过规范控制股东行为、加强监管,降低控制股东侵害中小股东利益的直接收益。第三种,增加c,使得[(λ2 λ3) /(λ1 λ2 λ3)]*£< ca,即通过加强中小股东利益保护的措施,使控制股东在侵害中小股东利益时必须付出额外成本。
同时我们也可以发现,当大股东m选择制衡时,可以较大程度的减l的侵害收益,直至是l放弃侵害,所以在股权结构设计中提高制衡行股东的持股比例,也是防止第一大股东或控股股东侵害中小股东的有效办法。通过以上这些途径,最终改变了支付矩阵,迫使控制股东重新进行成本收益分析,实现了从(侵害,不制衡,不制衡)到(不侵害,不制衡,不制衡)均衡状态的转变。在这个过程中,股权结构的约束作用体现得非常明显,控制股东和其他股东的股权比例越接近,对控制股东的约束性也就越强,控制股东行为就越与其他股东及公司整体利益保持一致。