自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

转载 OSGi介绍(六)OSGi的service

<br />在给出采用service方式实现的“扶贫助手”之前,我们稍微回顾一下上一篇的成果。<br />在(五)中,我们看到程序被分成多个bundle后,程序的模块程度得到提高,而控制模块间的耦合度由Import-Package和Export-Package来控制,相对比较灵活。另一方面程序的更新和升级的粒度变小了。谁都知道只更新部分要比全部更新强,尤其当更新发生在一些需要建立昂贵的连接时,细粒度会节省不少花销。除了这些,我们看不到其他新鲜的东西。说白了,也就是挖空心思想一些design pattern来

2011-03-24 12:35:00 1113

转载 OSGi介绍(五)两个bundle

<br />(四)中提到的直接型改造法实际上和一个传统的java应用程序没有区别。因此客户的需求发生变化,通常是牵一发而动全身。<br />那么我们现在就看看如果在osgi framework中,用多个bundle来实现的效果吧。我的想法是用两个bundle来配合实现“扶贫助手”的功能。一个bundle专门负责录入和显示纪录,一个bundle专门负责纪录的数据结构和对数据的处理,用时下时髦的说法就是使用了mvc,只是我的m和c放到了一起。<br />先看看mc的bundle实现代码片断:<br />pack

2011-03-24 12:33:00 3345 2

转载 OSGi介绍(四)第一个bundle

<br />先给出“扶贫助手”的第一种改造,我称之为“直接型”,请看:<br /><br />package aa.bb.cc;<br />//需要import osgi的核心package<br />import org.osgi.framework.BundleActivator;<br />import org.osgi.framework.BundleContext;<br />//实现了BundleActivator<br />public class FamilyInfo implements 

2011-03-24 12:31:00 1173

转载 OSGi介绍(三)OSGi service platform的体系结构

先让我们来看看OSGi service platform的体系结构。另外要说明的是,我在后面的文章中,将采用framework来代替OSGi service platfrom,这样比较简便。下面这张图来自OSGi Alliance的主页(http://www.osgi.org/)层次很分明吧。放到我们假想的案例中,OS&Hardware可以对应为PDA的硬件和操作系统,您可以想象它是Intel xscacle + Microsoft window mobile,或者是Arm + embedded Linux

2011-03-24 12:30:00 1156

转载 osgi介绍(二)一个假想的实例

如何分析OSGi service platform的机制?给出几个硬生生的例子,然后分析一下代码?那还不如你自己看书看规范好了。因此,我觉得还是结合一个应用实例来分析会更容易理解,当然,是一个假想的应用实例。用怎样一个实例呢?嗯......几个月前,一个中学同学打电话给我说他们要在PDA上开发一个简单的应用程序来临时纪录工作的结果,并向我咨询,这种开发的难度和周期。这事启发我了,就以PDA的应用为背景,让我们来假想一个场景,从而来比较传统的应用模型与采用OSGi的应用模型有怎样的区别。我这样想象:小李是一个

2011-03-24 12:29:00 739

转载 osgi介绍(一)什么是osgi

<br /><br />过于的一年多,在和很多it届的同学及朋友见面时,他们总会问我最近在做什么。“OSGi!”,我不加思索的回答。到目前为止,对这个单词得到的反应都没有超出“这是什么?”,“我没有听说过”,“噢,能具体点吗?”等等。而我的回答更让他们糊涂,最后,大家干脆放弃这个话题,转到买房,运动等等更能体现聚会实质的问题上。不过最近,我一直在思考这个问题,下次再遇到这种情况时,该如何去表达才能让也是it届的哥们姐们能迅速的理解这个领域的范围呢?要知道,技术人员往往不善于表达,我们已经习惯了和业内人士用行

2011-03-24 12:28:00 812

转载 在Java中模拟多重继承--扩展多个类的技巧

<br />摘要:虽然Java不允许多重继承,但是有些情况却允许其使用。本文将阐述在一个Web应用中模拟多重继承的技术。<br /><br />在一般的开发中,Java的单继承限制一般不会引起什么问题。实际上,需要使用多重继承往往意味着糟糕的设计。然而还是存在一些情况,程序员们希望能够继承多个类。虽然Java不允许继承多个类,但是有些技巧能够模拟多重继承。<br /><br />我在Swing应用程序和Web应用中都使用过这个技巧。Swing应用打包并部署服务到应用服务器上。这种情况下,因为我希望在不同组件

2011-03-23 17:29:00 1135

转载 JAVA 的interface观念 与C++ 多重继承的比较

<br />依据DDJ的C/C++专栏作家Al Steven表示:他虽然不是很懂得Java﹐但是看到这些书中对于C++的物件导向概念的阐释﹐有些地方明显错误﹐真是令人担心。本文假设读者您已熟悉一些C/C++语言的概念﹐对Java也有初步的认识。而谈论Java的interface与C++的多重继承之主要异同处。 <br /><br />interface与多重继承的观念 <br />    不管是Java的interface或是C++的多重继承﹐在物件导向的理论里﹐都算是蛮新颖的概念。所以这里我们谈的﹐是以程

2011-03-23 17:28:00 775

转载 JAVA基础:完全掌握java中的"包"机制

<br /><br /> <br /> <br /> <br />"包"机制是java中特有的,也是java中最基础的知识。一些初学java的朋友,通常象学其它语言一样从教材上copy一些程序来运行,可是却常常遇到莫名其妙的错误提示。这些问题事实上都出在对"包"的原理不够清楚。本文将就此问题进行深入阐述。<br />一、为什么java中要有"包"的概念?<br />  以一言概之,java中"包"的引入的主要原因是java本身跨平台特性的需求。因为java中的所有的资源也是以文件方式组织,这其中主要包含大量

2011-03-23 12:23:00 582

转载 linux 下缓冲区溢出攻击原理及示例

<br />一、溢出目标<br />     无论是在windows下还是在linux下,溢出攻击基本上都是以控制计算机的执行路径为目标,而x86下执行哪条指令是由eip寄存器来控制的,所以如果能够修改eip寄存器的值,就可以修改计算机的执行路径。<br />    所以溢出的目标:控制eip寄存器。二、关于call/ret<br />      但是如何修改eip寄存器呢?在汇编指令中有一个和eip寄存器紧密相关的指令ret,ret就可以理解为pop eip。而ret指令在正常函数调用的时候都会执行的。<

2011-03-22 14:23:00 1455

转载 格式化字符串攻击原理及示例

<br /><br />一、类printf函数簇实现原理<br />类printf函数的最大的特点就是,在函数定义的时候无法知道函数实参的数目和类型。<br />对于这种情况,可以使用省略号指定参数表。<br />带有省略号的函数定义中,参数表分为两部分,前半部分是确定个数、确定类型的参数,第二部分就是省略号,代表数目和类型都不确定的参数表,省略号参数表中参数的个数和参数的类型是事先的约定计算出来的,每个实参的地址(指针)是根据确定参数表中最后一个实参的地址算出来的。<br />这里涉及到函数调用时的栈操作

2011-03-22 14:20:00 18932 4

转载 iptables/netfilter命令、实现及利用

<br /><br />一、Netfilter和Iptables概述<br />       netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。<br />      虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两

2011-03-22 14:16:00 1211

转载 OSGi 体系结构及Bundle简介

<br /><br />1、OSGi 的体系架构是基于插件式的软件结构,包括一个 OSGi 框架和一系列插件,在 OSGi中,插件称为 Bundle,其中,OSGi 框架规范是 OSGi 规范的核心部分,它提供了一个通用的、安全可管理的 Java 框架,通过这个框架,可以支持 Bundle 服务应用的部署和扩展。Bundle 之间可以通过 Import Package 和 Require-Bundle 来共享 Java 类,在 OSGi 服务平台中,用户通过开发 Bundle 来提供需要的功能,这些 Bun

2011-03-14 14:43:00 990

转载 GCC 参数详解

<br />[介绍] <br />gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 <br /><br />1.预处理,生成.i的文件[预处理器cpp] <br />2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] <br />3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] <br />4.连接目标代码,生成可执行程序[链接器ld] <br />[参数详解] <br />-x language filename <

2011-03-11 10:20:00 446

转载 从Linux程序中执行shell(程序、脚本)并获得输出结果

<br />从Linux程序中执行shell(程序、脚本)并获得输出结果(转)Contents1. 前言2. 使用临时文件3. 使用匿名管道4. 使用popen5. 小结1. 前言<br />Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令

2011-03-09 19:01:00 858

转载 CentOS5共有フォルダの設定

<br />http://mpweb.sytes.net/complete/windows/share-centos.php<br />VirtualBoxでゲストOSのCentOS5を起動しメニューバー>>デバイス(D)>>共有フォルダ(S)を選択します。共有フォルダの設定画面が開いたら右上のフォルダに+マークの付いたアイコンをクリックします。共有フォルダの追加でフォルダパスと、フォルダ名を指定します。フォルダパスを指定するとフォルダ名が自動で挿入されますが、このときフォルダ名にブランクが入っている場合は

2011-03-09 10:41:00 761

转载 --vi 查找命令的使用

<br />按下 Enter 键后,vi 将搜索指定的 pattern,并将光标定位在 pattern 的第一个字符处。<br />例如,要向上搜索 place 一词,请键入:<br />/place Enter (Enter表示按下回车键)<br /><br />如果 vi 找到了 place,它将把光标定位在 p 处。要搜索 place 的其他匹配,请按 n 或 N:<br /><br />n,继续朝同一方向搜索 place。<br /><br />N,反方向进行搜索。<br />如果 vi 未找到指定

2011-03-01 17:53:00 713

转载 linux环境变量 shell变量 command not found解决方法

<br /><br />在Ubuntu中有如下几个文件可以设置环境变量<br />1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。<br />2、/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。<br />3、~/.bash_profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用

2011-03-01 16:57:00 16303

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除