基于UNIX的操作系统内核——Cocoa中的Distributed Object

来源:互联网 发布:决策树经典算法 编辑:程序博客网 时间:2024/05/11 01:16

Cocoa中的Distributed Object
 
        Cocoa中的Distributed Object提供了本地或远程计算机的进程通讯。它将服务端的一个Objective-C对象“租赁”给客户端,客户端通过网络发送消息给另一台计算机上的那个“被租赁”的对象,从形式上和发消息给本地程序的一个Objective-C对象相同。它的设计使你能够专注于传送的数据而不是传送的连接方法,所以它比较方便,节省时间。但是这种技术牺牲性能,没有其它的通讯技术高效。
         更多关于Cocoa中的Distributed Object信息,请看Distributed Objects Programming Top-ics(http://developer.apple.com/documentation/Cocoa/Conceptual/DistrObjects/DistrObjects.html)。
 
 
Mach消息传递
 
Mach端口实现了标准和安全的进程消息传递。但是利用Mach端口进行通讯是不推荐的。它依赖于对内核的接口的了解,并有可能在未来的版本变化。
 
所有的进程间的通讯机制都在某一层次上以Mach端口通讯的形式实现,所以底层的技术如套接字,端口,流都提供了有效和可靠的进程通讯方式。仅仅在进行内核编程的时候才需要直接使用Mach端口。


Core Foundation

     Core Foundation框架(CoreFoundation.framework)是一套基于C语言的接口。它提供了Mac OS X的基本数据处理服务。您可以操作的数据包括:

 • 集合
 • Bundle和插件
 • 字符串
 • 原始数据块
 • 日期和时间
 • Preferences
 • 流
 • URLs
 • XML数据
 • 本地化信息
 • Run loops
 • 端口和套接字

        Core Foundation基于C语言开发,但它有类似于面向对象的概念,Core Foundation的opaque数据对象和Cocoa的对应数据对象往往可以混合使用。Carbon和非Cocoa应用程序推荐使用Core Foundation,Cocoa应用程序则推荐使用Foundation Framework。
 
        更多信息,参见Core Foundation Design Concepts 。


Objective-C

        Objective-C是C语言的面向对象扩展。它是Cocoa应用程序的主要开发语言。它不是像从C到C++那样从语言本身进行改造,而是使用动态的运行环境使它具有面向对象的特性。

        在Mac OS X 10.5中,Objective C 2.0的引入,给我们带来了如下的新特性:

 • 对象属性(object property),使get和set函数以及其对应的数据变量的整体具有实例变量的特征
 • 支持垃圾收集器。参见Garbage Collection编程指南
 • 为支持快速枚举(fast enumeration)而出现的新的for运算符
 • 协议(protocol)的改进
 • Deprecation语法

        更多信息,请看The Objective-C 2.0 Programming Lan-guage 。


Java

Java环境
        Java应用程序环境所需的资源库,JAR文件,可执行文件可以在/System/Library/Frameworks/JavaVM.framework文件夹中找到。Java应用程序环境有3个部分:

 • javac编译器jdb调试器以及javap,javadoc和appleviewer。Xcode可以开发Java程序。
 • 运行环境,包括,JVM虚拟机,JIT字节码编译器和几个基础类,如java.lang,java.util,java.io和java.net。
 • 应用程序框架。如用于设计用户界面的Abstract Window-ing Toolkit(java.awt)和Swing(javax.swing),还包括用户接口元素,2D绘画支持,Layout管理器,和Java事件处理机制。

        使用Jar Bundler,Java应用程序可以被打包成bundle。

        可使用java命令打开Java应用程序。使用exec或Runtime.exec()方法从另一程序打开。可使用Safari打开Applet程序。
 

Java和其它应用程序环境

        Java可以利用Java Native Interface(JNI)使用Cocoa和QuickTime的特性。请看Technical Note 2147 。

 

 

 

 

原创粉丝点击