关于SOA的应用研究思考
我一直在想真正的SOA应用应当是怎么样的呢,通过这一段时间看的一些资料,我想SOA的两个难点就是服务的管理和服务的集成在这里我先想像回为服务的管理问题而产生的一些想法:
服务的管理包括:注册服务,监视服务的运行等方面的内容,内容很多,但通过有效的分析我想问题都能够是能够解决的.我就想像了一下在WCF中的服务管理应当解决什么内容呢,在这里我假设建立一个服务中心的服务,其它的客户端通过这个服务来查找其它服务的服务接口,当一个服务启动后自动向服务中心注册自己,而当服务关闭时自动从服务中心将自己的注册信息取消,注册中心在一个固的时间内向提供服务的计算发出请求确认服务是否存在(这里我想可能还有更加简单,有效的的办法),一个服务的提供可以有多个ServerHost或多台其它服务器提供,当请求查找的服务时根据一定的算法实现服务的平衡性。
但这里就有一个需要处理的问题,是应当让客户机直接与这个服务的提供者之间进行连接访问呢,还是通过这个服务中心间接提供访问呢?
通过服务中心提供能够有效的对服务的运行进行监视,保护等,有效的降低服务提供者的开发难度,并且有可能服务提供者与服务使用者之间不能够直接进行连接,通过这个服务中心就能够解决这个问题,但这里出现的最集中的问题是:这个服务中心的性能怎么样能够达到让人满意的表现,特别是如果所有系统根据这个注册中心来处理的话,其所产生的性能问题后果很严重,很有可能成为系统性能的瓶颈。
而由服务使用者与服务提供者之间进行直接连接,那么这个连接就不受服务中心的监管,服务管理所需要对服务的监视,日志的记录等也只能够服务的实现者调用服务中心的相关服务向服务中心报告,这对于开发服务提供者来说提出了更高的要求,并且将需要制定更多的规范来处理,并且如果其中一个服务没有按这个规范来处理的话就有可能让整个系统产生不一致性,并且如果外部程序就了解了服务的提供者的相关信息,这对于松散关系的服务是否有什么不好呢,并且需要进行服务之间的集成的话怎么处理呢,这里在后面将会详细进行一些设想。但相对的得到的好处是能够得到比较好的性能,因为减少了对于服务中心这个中间环节,并且服务也能够更好的对自我进行控制和管理。