什么是存储大量临时&QUOT的好办法;会议"在Web应用程序的数据 [英] What is a good way to store large temporary "session" data in a web application

查看:89
本文介绍了什么是存储大量临时&QUOT的好办法;会议"在Web应用程序的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我公司有一个第三方Web服务,我们正在设计的前端。这个Web服务中使用的对象非常大(和可变根据子实体产生的数量)。 Web服务不公开方式提交/负载子实体,只有充分对象层次。

My company has a 3rd party web service we are designing a front end for. The "objects" used by this web service are very large (and variable depending on the number of sub-entities created). The web service does not expose methods to commit/load sub-entities, only the full object hierarchy.

用户界面本身分割成许多子屏幕和主/详细视图,能够有效地/方便地编辑大量的数据。

The UI itself is split into many sub screens, and master/detail views to be able to efficiently/easily edit the large amount of data.

问题是在哪里存储你当前没有看到数据。

The issue is where to store all the data you aren't currently looking at.

否则web服务提交占用为大型记录30秒后,所以它是不可行的使用Web服务的间歇的数据存储。

Doing the web service commit takes up to 30 seconds for large records, so it is not feasible to use the web service for the intermittent data storage.

如前所述,数据可能相当大(多兆,到可能是在边缘的情况下数据的千兆字节)

As mentioned, the data can be quite large (multiple megabytes, to possibly a gigabyte of data in the edge cases)

这是对ASP.Net 4.0,具有MS-SQL后端,和一个第三方SOAP网络服务。

This is for ASP.Net 4.0, with a MS-SQL back-end, and a 3rd party SOAP web service.

更改Web服务合同不是一个选项。

Changing the web service contract is not an option.

下面有一些想法,我们有过。帮助我选择,或找出更好的东西!

Here are some ideas we have had. Help me choose, or identify something better!

1)初始开发者投掷XML序列化到会话(机上会话)。我很快发现这是问题,因为以这种方式使用会话由于内存占用,以及负载均衡等问题可能严重影响性能。

1) The initial developer threw serialized XML into the session (on-machine session). I quickly identified this as problem, as using session in this way could drastically affect performance due to the memory taken up, as well as load balancing issues etc.

2)会话服务器 - 可能的,但需要额外的硬件采购为这可能不是一种选择

2) Session server - possible, but requiring additional hardware purchase for this is probably not an option

3)SQL会话 - 存储这样的大型物体的效果

3) SQL session - Performance of storing such a large object?

4)XML写入磁盘/股(压缩?)

4) Write XML to disk/share (zipped?)

5)写XML到SQL(压缩?)

5) Write XML to SQL (zipped?)

6)SQL关系数据库 - 为每一个实体类型表。这将允许各个子实体加载/保存这可能是对性能有很大。我们担心的脆性和维护,因为我们无法控制的第三方服务(虽然我们有这个问题真的无论如何,因为它的GUI也将是易碎)

6) SQL relational database - create tables for each entity type. This would allow individual sub-entity load/save which could be great on performance. We are worried about brittleness and maintenance since we do not control the 3rd party service (although we have that issue anyway really, since the GUI also would be brittle)

7)的ViewState - 太大了,香水,按

7) viewstate - way too big, perf hit

推荐答案

选项6可能是你最好的选择。这听起来像你必须处理好保持更改服务的数据结构反正。你还不如拿出一个方案,您可以在拉从服务中的数据的数据存储,让用户玩它,然后推的数据传回他们完成时。

Option 6 is probably your best bet. It sounds like you have to deal with maintaining changes to the service's data structure anyway. You might as well come up with a schema where you can "pull" the data from the service to your data store, let users play with it, then "push" the data back when they're done.

您可能也有兴趣了解非SQL数据存储。一个模式小于或基于文件的数据存储可能会降低维护成本,同时还允许你存储整个模型的路程,事后检索基于查询它的一部分。

You might also be interested in learning about non-SQL data stores. A schema-less or document-based data store might reduce your maintenance costs while still allowing you to store the entire model away and retrieve pieces of it based on queries after the fact.

这篇关于什么是存储大量临时&QUOT的好办法;会议"在Web应用程序的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆