.net架构与TAO架构跨越边界的实现的比较
2006-03-24 16:27
225 查看
昨天看了那篇关于架构的文章之后,我突然就对架构与架构之间的共性有了兴趣,左右闲着也是闲着晚上就翻了代码来看看.net架构与TAO架构跨越边界的异同,现代的架构都肯定能跨越物理边界的,TAO是ORB架构这是分内的事,.net也要无缝调用,因此本质上它们都要做一样的事情,就是用t用tcp/ip传递报文。。。。
首先它们总的都marshall其数据,两者把要传递的引用或者实例给写到内存流中转到消息里,写好header后两者实现的函数分别是
TAO:TAO_Server_Request.cpp
void
TAO_ServerRequest::init_reply (void)
.NET:
class System.IO.MemoryStream/* 02000329 */
SerializeMessage(class System.Runtime.Remoting.Messaging.IMessage/* 020003D7 */ msg) cil managed
然后两者都要有实际发送数据流的函数或者方法:
.Net:
instance class System.Runtime.Remoting.Messaging.IMessage/* 020003D7 */
SyncProcessMessage(class System.Runtime.Remoting.Messaging.IMessage/* 020003D7 */ reqMsg) cil managed
TAO:TAO_Server_Request.cpp
void
TAO_ServerRequest::send_no_exception_reply (void)
监听而言就有点儿稍微不同,.Net叫IIS帮忙然后再回调到CrossAppDomainSink来,TAO却是有个IIOP_Connection_Handler.cpp里的
int
TAO_IIOP_Connection_Handler::open (void*)函数,使用了ACE的reactor框架。。。。
来打开链接。
但是至少思路是一样的,至少。。
我突然想要是把TAO拿来写个几个COM风格的接口来包装到一个dll里一下,然后导入到托管代码中,作为crossDomainsink的
一种实现好像也不是很疯狂的事情,毕竟ECMA规范里定义好了数据的格式,实现就模棱两可。。。嘿嘿这样的话就是在外观层面的功能性重用了吧,不过这样就损坏了所谓的架构完整性,可能。。至少对.net而言。。话说回来折腾这么多干吗呢。
首先它们总的都marshall其数据,两者把要传递的引用或者实例给写到内存流中转到消息里,写好header后两者实现的函数分别是
TAO:TAO_Server_Request.cpp
void
TAO_ServerRequest::init_reply (void)
.NET:
class System.IO.MemoryStream/* 02000329 */
SerializeMessage(class System.Runtime.Remoting.Messaging.IMessage/* 020003D7 */ msg) cil managed
然后两者都要有实际发送数据流的函数或者方法:
.Net:
instance class System.Runtime.Remoting.Messaging.IMessage/* 020003D7 */
SyncProcessMessage(class System.Runtime.Remoting.Messaging.IMessage/* 020003D7 */ reqMsg) cil managed
TAO:TAO_Server_Request.cpp
void
TAO_ServerRequest::send_no_exception_reply (void)
监听而言就有点儿稍微不同,.Net叫IIS帮忙然后再回调到CrossAppDomainSink来,TAO却是有个IIOP_Connection_Handler.cpp里的
int
TAO_IIOP_Connection_Handler::open (void*)函数,使用了ACE的reactor框架。。。。
来打开链接。
但是至少思路是一样的,至少。。
我突然想要是把TAO拿来写个几个COM风格的接口来包装到一个dll里一下,然后导入到托管代码中,作为crossDomainsink的
一种实现好像也不是很疯狂的事情,毕竟ECMA规范里定义好了数据的格式,实现就模棱两可。。。嘿嘿这样的话就是在外观层面的功能性重用了吧,不过这样就损坏了所谓的架构完整性,可能。。至少对.net而言。。话说回来折腾这么多干吗呢。
相关文章推荐
- 基于.NET平台的分层架构实战(四)——实体类的设计与实现
- 基于.NET平台的分层架构实战(七)——数据访问层的第一种实现:Access+SQL
- 基于.NET平台的分层架构实战(八)——数据访问层的第二种实现:SQLServer+存储过程
- 基于.NET平台的分层架构实战(十)——业务逻辑层的实现
- 基于.NET平台的分层架构实战(七)—数据访问层的第一种实现:Access+SQL
- 基于.NET平台的分层架构实战(五)——接口的设计与实现
- 基于.NET平台的分层架构实战(十)——业务逻辑层的实现
- J2EE与.NET技术架构的比较
- .NET 分布式架构开发实战之四 构建从理“.NET研究”想和实现之间的桥梁(前篇)
- WeText项目:一个基于.NET实现的DDD、CQRS与微服务架构的演示案例
- 使用WCF实现SOA面向服务编程“.NET研究”—— 架构设计
- 基于.NET平台的分层架构实战(五)——接口的设计与实现
- .net中实现简单三层架构
- 基于.NET平台的分层架构实战(五)——接口的设计与实现
- 基于.NET平台的分层架构实战(七-外一篇)——对数据访问层第一种实现(Access+SQL)的重构
- 基于.NET平台的分层架构实战(十)——业务逻辑层的实现
- 基于.NET平台的分层架构实战(六)——依赖注入机制及IoC的设计与实现
- 基于.NET平台的分层架构实战(十一)——表示层的实现
- 基于.NET平台的分层架构实战(六)——依赖注入机制及IoC的设计与实现[转]
- 基于.NET平台的分层架构实战(五)——接口的设计与实现