会话从字面意义上来理解,是一次对话,在我们系统中怎么理解呢,会话就是一次交互,应和程序客户端和服务器端进行一个业务交互就是一个会话,会话生存与客户与服务器之内,会话在软件业中被用的很广,在Web大家很熟悉的Session,就是一个会话,他表示的是Web服务器和一个网页浏览都的一个交互,基于一个网站(应用程序的)一个交互,会话在客户浏览内在的过程中提供浏览网页需要在客户端和服务器端的一些参数。会话由浏览者开始浏览这个网站开始会话,到访问者离开该网站关闭浏览器结束会话。
在AgileEAS.NET平台中,我们采用这种会话的方式,管理应和程序和与客户(使用者)的生存周期管理,同时为应和程序及客户提供会话相关的资源,会话的概念有些抽象,简单的理解成,服务系统在工作中和调用客户所交互的过程,我们称之为会话,也可以在开发过程中这样理解,SmartEAS.NET资源管理平台是一个服务器,在客户(功能模快)运行的过程中,从模块加载运行到模块释放,这一过程。同样在这一过程中,会话为服务和客户提供双方的连接信息,客户利用依存在会话上的资源进行相关的数据处理。
如果我们用极其简单的话来理解的话,可以这么理解AgileEAS.NET平台中的会话,可以理解为AgileEAS.NET平台中插件运行容器与插件之件信息传递的一种桥梁和纽带,会话或者应用上下文为应用提供系统运行必须的资源(如数据环境、ORM访问器等),基于会话对象接口的对象(如ORM实体)默认使用会话资源运行活动操纵。
以下是基础中间件中会话的类结构图:
ISession
系统会话接口,以下是接口定义:
会话接口中定义了会话的服务器(Server)与客户端(IClient)、会话上下文(SessionContex)及建立本会话的相关会话资源集合(SessionResourceCollection)。并且定义了会话的开始方法及会话的终止方法。
IServer
系统会话服务器接口,以下是接口定义:
IServer是一个系统会话的服务器端,在接口中定义了服务器的名称,位置信息、以及建立在本服务器的会话集合,在一个IServer上可以建立1-n个会话,也就是说,可以Server同时和n个客户端进行会话、进行数据通信。
IClient
系统会话客户接口,以下是接口定义:
IClient是一个系统会话的客户端,在接口中定义了客户的名称,以及本客户所持有会话及会话参数信息。
ISessionResource
系统会话资源接口,以下是接口定义:
ISessionResource定义了建立会话所需求使用的资源,在接口中资源的资源标识符,在具体的会话资源(比如数据库连接、ORM访问器等)实现的过程中实现本接口,则会话资源会在会话的期间为客户提供相关资源的访问功能。
ISessionObject
系统会话对象接口,以下是接口定义:
ISessionResource定义了生成在会话上的会话对象,会话对象是一类使用会话得以生存和进行某种功能操作的对象,比如可以使用会话资源中的数据库访问连接资源访问数据库。