分布式数据库系统---商旅预定系统的实现(1)

今天看到师弟他们又像我们去年一样忙着老板的课程结课设计,想着我是去年如何苦逼的过程,想把我的开发经历分享出来。

项目介绍   

    本系统是在学习了分布式数据库课程的基础上设计的。在Microsoft visual studio 2010开发平台上用C#语言组建了一个分布式应用系统,实现了一个简单的分布式旅行预定系统。根据要求,本系统实现了三个基本功能:一个简单的资源管理器(RM)支持具有ACID属性的并发事务、一个工作流管理器(WC)和一个事务管理器(TM)能在各个资源管理者(RM)之间实现分布式事务处理、实现这些基础项目的外部增设功能。系统实现了人机交互的可视化界面,可进行查询、插入、预定等操作。

    利用分布式数据库技术实现一个旅行预订系统,可实现查询(航班、酒店、出租车、顾客、预定情况)、插入(飞机相关信息、旅馆相关信息、出租车相关信息、顾客相关信息)、预定(旅行信息)。逻辑上,所有信息均存储于同一数据库中,物理上,航班,出租车,旅馆,顾客和预订的信息分别存放于不同的站点。

主要技术

     Remoting,简而言之,我们可以将其看作是一种分布式处理方式 。从微软的产品角度来看,可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下。Microsoft .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这也正是我们使用Remoting的原因。为什么呢?在Windows操作系统中,是将应用程序分离为单独的进程。这个进程形成了应用程序代码和数据周围的一道边界。如果不采用进程间通信(RPC)机制,则在一个进程中执行的代码就不能访问另一进程。这是一种操作系统对应用程序的保护机制。然而在某些情况下,我们需要跨过应用程序域,与另外的应用程序域进行通信,即穿越边界。

在Remoting中是通过通道(channel)来实现两个应用程序域之间对象的通信的。首先,客户端通过Remoting,访问通道以获得服务端对象,再通过代理解析为客户端对象。这就提供一种可能性,即以服务的方式来发布服务器对象。远程对象代码可以运行在服务器上(如服务器激活的对象和客户端激活的对象),然后客户端再通过Remoting连接服务器,获得该服务对象并通过序列化在客户端运行。

    在Remoting中,对于要传递的对象,设计者除了需要了解通道的类型和端口号之外,无需再了解数据包的格式。但必须注意的是,客户端在获取服务器端对象时,并不是获得实际的服务端对象,而是获得它的引用。这既保证了客户端和服务器端有关对象的松散耦合,同时也优化了通信的性能。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值