我开发了一个 WCF 服务,用于在组织的以太网中使用。
该服务当前托管在 Windows 服务上并使用net.tcp绑定。服务中定义了
2 个operation contracts。
连接到此服务的客户端是一个长时间运行的 Windows 桌面应用程序。
员工(> 30,000)通常让这个客户端从周一早上到周五晚上连续运行一周。
在此生命周期内,可能会根据主桌面客户端上的特定用户操作对相关 wcf 服务进行多次调用。让我们假设主桌面应用程序上每 3 个操作中的 1 个将触发对我们服务的调用。
现在我们计划在每个员工的桌面上部署这个窗口服务,
我也使用 `autofac` 作为依赖解析器容器。
我的 WCF 服务实例上下文是 `PerSession`,但理想情况下,我们在同一个桌面上运行客户端和服务(目前),所以我计划使用 `autofac` 容器为每个新会话注入相同的服务实例。
现在不会更改服务实现上的“InstanceContext”属性,因为将来我可能会在不同的托管环境中部署相同的服务,我希望每个会话都有一个新的服务对象实例。
就像前面提到的,客户端是一个长时间运行的桌面应用程序,我已经读过,为每个调用“打开”和“关闭”代理是一个很好的做法,但如果我将服务保留为 PerSession,它将创建一个新的服务实例对于每个调用,鉴于服务和客户端具有 1-1 映射,这可能不需要。
另一个论点是我计划在这个环境中为每个会话注入相同的实例,所以每个服务调用的打开和关闭应该无关紧要?
那么我应该采用哪种方法,为每次调用创建服务“单例”并打开关闭,或者在桌面应用程序加载/第一次服务调用时打开客户端代理,然后仅在桌面应用程序关闭时关闭它?
您如何描述和推广WCF作为非技术客户/经理/ CEO /等的技术?
他们可能提出的竞争解决方案或想法是什么(例如他们在杂志上宣传的新技术)?
什么是WCF 对你看到人们试图将其变成了什么并不好?
-亚当
我一直在研究异步消息传递,我喜欢它优雅地处理某些领域内的一些问题的方式以及它如何使领域概念更加明确.但它是一种可行的通用域驱动开发模式(至少在服务/应用程序/控制器层),还是设计开销,应该限制在基于SOA的场景,如远程服务和分布式处理?
我想知道是什么人用来制作你的应用程序/服务架构图?
我想制作代表整个应用程序的不同层的图表,并使某些部分更深入(类级别)
我正在使用基于多层SOA的企业应用程序来处理所有复杂的业务逻辑.许多业务验证需要来自数据库的大量支持数据,这会降低性能.并发用户的数量大约是1000.客户端是多层的WinForms.
我们正在考虑几乎所有的企业库块.
验证应用程序块
我需要评估WCF数据服务与WCF RIA服务之间的SOA架构.以下是我的一些参数:
谁能帮我收集一些数据供我评估.此外,SOA实现是否还有其他好的选择.
我知道DevForce.
在过去的几年里,我有很多经验,他们使用和设计依赖于HTTP相互通信的SOA系统.我想知道利用SPDY的SOA架构会是什么样子.我不是网络专家,但在我看来,SPDY的性能增强对于服务到服务通信以及浏览器通信非常有用.
1)一般来说,将SPDY用于SOA有什么意义?
和
2)使用SPDY调整现有的Web应用程序框架(如Rails或Grails)会涉及哪些内容?它会像配置SPDY的网络服务器一样简单吗?
我在WSO2栈很新,不知道何时应使用WSO2 ESB代理服务,当 - 通过BPEL创建业务流程?
我认为他们正在做同样的事情 - 通过服务组合和一些调解来执行任务.
我有一个看起来像这样的处理程序:
public class CreateNewUserHandler :
Saga<UncorroboratedCreateNewUser>,
IAmStartedByMessages<CreateNewUser>,
IHandleMessages<FoundUser>
{
[Dependency]
public IBus Bus { get; set; }
public override void ConfigureHowToFindSaga()
{
ConfigureMapping<CreateNewUser>(saga => saga.CorrelationId, req => req.CorrelationId);
ConfigureMapping<FoundUser>(saga => saga.CorrelationId, foundUser => foundUser.CorrelationId); //CorrelationId is of type Guid here
}
public void Handle(CreateNewUser message)
{
Mapper.DynamicMap(message, Data, typeof(CreateNewUser), typeof(UncorroboratedCreateNewUser));
Data.CorrelationId = message.CorrelationId;
Bus.Send(new FindUserByUserName { CorrelationId = Data.CorrelationId, UserName = message.UserName });
}
public void Handle(FoundUser message)
{
//**THIS BLOCK WAS NEVER HIT**
}
}
Run Code Online (Sandbox Code Playgroud)
现在应该回复的另一个处理程序FoundUser是这样的:
public …Run Code Online (Sandbox Code Playgroud) 有没有提供OSGi容器作为服务的Java PaaS解决方案?
If not a full-blown PaaS, just a clusterable/scalable OSGi host. Google turned up nothing, so I'm assuming there isn't anything like this. Thanks in advance!
soa ×10
wcf ×3
.net ×2
architecture ×2
c# ×2
apache-karaf ×1
autofac ×1
azure ×1
bpel ×1
devforce ×1
diagram ×1
frameworks ×1
grails ×1
java ×1
messaging ×1
nservicebus ×1
osgi ×1
paas ×1
rest ×1
soap-client ×1
spdy ×1
uml ×1
visio ×1
web-services ×1
wso2 ×1
wso2esb ×1