小编Han*_*etz的帖子

如何实现Web应用程序的现场安装(最好是跨平台)的许可证管理?

我有一个基于Gentoo的LAMP堆栈上运行的Web应用程序.我的客户购买软件作为服务,我托管一切.但是,客户自己的网络内部需要进行现场部署.

目前,由于我托管系统,因此应用程序中没有内置的许可证管理.我基于用户帐户和数据容量(它是用于计量数据的处理和分析应用程序)进行计费,我只是设置客户支付的任何费用,客户端无法自行设置这些内容.即使没有现场安装,也应该进行更改以获得更好的可扩展性.

我正在寻找一个许可管理框架和/或您已经实现或已经看到在其他地方工作良好的典型方法.我的要求是:

  • "足够安全"而不是"军事等级"
  • 非常突兀
  • 当他只获得许可时,防止许可的所有者在多个工厂中运行系统
  • 使用户帐户数量和数据容量合理防篡改,易于升级/降级
  • 没有互联网连接的工作(拥有一个完全独立的系统将是选择现场解决方案的主要方面),尽管如果在安装期间必须有临时连接可能是可以接受的

对于某些现场场景,需要一些特定的操作系统,通常是某些版本的Windows Server,但各种Linux发行版也越来越受欢迎,特别是在公共部门.

从用户的角度来看,我对FogBugz的许可证管理非常满意,看来Joel Spolsky从供应商的角度来看它是满意的,而且它是跨平台的,所以它会很好地参考我的内容.瞄准.

licensing web-applications

6
推荐指数
1
解决办法
3091
查看次数

Flash与AJAX/JS有什么(技术)优缺点?

我们提供了一个Web应用程序,其前端完全由Adobe Flash开发.当我们在6年前选择Flash时,我们之所以这样做是因为它具有大量用户交互功能,例如拖动内容,打开和关闭菜单,树导航元素,弹出对话框等.

今天很明显,AJAX/JS提供了大致相同的可能性,并且由于可用的框架数量很多,因此实现它们非常可行.

是否存在技术原因应该选择哪种技术而不是另一种?"技术"是指性能,安全性,可移植性/兼容性等.我并不是指在Flash中完成非程序员方式开发等方面,或者将应用程序从一个应用程序切换到另一个应用程序是否有意义.

正如我刚才在另一个问题中解释的那样,我看来,JS在市场份额方面遥遥领先,我想知道如果我们坚持使用Flash,我们是否会忽略一些重要的观点.

flash ajax ria

6
推荐指数
1
解决办法
1018
查看次数

在多线程(Java或.Net)程序中,我可以假设复制变量是原子的吗?

当我想知道这个问题时,我在设计的应用程序中担心竞争条件.

假设我有一个大型数组或某种类型的集合,由我的程序的一个组件管理,让我们称之为组件Monitor.它的工作是定期检查集合是否"脏",即最近是否已更改,如果是,则将快照写入磁盘(这是为了在发生崩溃时检查应用程序)并再次将其标记为干净.

在不同线程中运行的同一程序的其他组件调用Monitor的方法来向数组/集合中添加数据或修改数据.这些方法将集合标记为脏.

现在,改变方法在其他组件的线程中运行,对吧?如果我不是那么幸运,可以在快照写入磁盘时调用它们,更改已经写入的数据,设置脏标志,监视器的线程在此之后取消设置,而不保存更改(它当它改变时已经超过了元素).所以我有一个标记为干净的脏集合.

有一段时间,我认为我可以通过制作集合的临时副本来解决问题,将其标记为干净,然后再序列化副本.但复制是否是原子的,即我可以确定在复制时集合不会改变吗?

与此同时,我认为我找到了更好的解决方案

  • 在开始写入磁盘之前设置锁定标志,并使数据更改方法等待,直到取消设置该标志
  • 让数据更改方法写入"更改队列"而不是直接写入集合,并让具有磁盘写入进程的线程队列

我认为锁定标志可能是最好的方式.但我仍然好奇:复制变量原子?


后续行动:也许这应该是一个自己的问题,但实际上它是非常相同的.根据下面的答案,我的"锁定旗帜"方法可能也行不通,对吧?因为数据更改方法可能会在将锁定标志设置为"锁定"值时检查锁定标志并确定它未锁定.所以我需要一个像mutex这样的特殊结构,如果我真的想做到这一点,对吗?


荣誉对埃里克森对他非常有帮助的答案在我的跟进.我真的应该提出这两个问题,所以我可以接受两个答案.拜托,也请他投票.

.net java multithreading race-condition

6
推荐指数
2
解决办法
576
查看次数

对于大型项目,在编码之前应该进行哪些规划以及如何处理?

在创建一个想法之前,你有什么方法可以"绘制出来"?

假设我想参与一个大项目,例如Facebook或MySpace等网站的规模.在开始实际工作之前,我应该采取哪些规划/设计步骤?

例如,我应该逐页映射所有内容(它们的功能,数据等)吗?

workflow bduf

6
推荐指数
2
解决办法
1094
查看次数

在Java中使用任意对象作为Map键的任何缺点?

我的应用程序中有两种对象,其中一种对象只有一种对应的对象.

跟踪这种关系的明显选择是Map<type1, type2>,就像HashMap一样.但不知何故,我很怀疑.我可以在Map中使用一个对象作为键,传递它,将它放在另一个集合中,并随时从Map中检索它的伙伴吗?

创建一个对象后,我传来的只是一个标识符,对吧?所以可能没有问题.如果我序列化和反序列化密钥怎么办?

还有其他警告吗?我应该使用其他东西来关联对象,就像我自己生成的数字一样吗?

java collections maps

6
推荐指数
2
解决办法
8569
查看次数

是否有一个Java Collection(或类似的)行为类似于auto-id SQL表?

请注意,我实际上并没有在这里使用数据库,因此ORM工具可能不是我想要的.

我想要一些容器,每个容器包含许多对象,一个容器中的所有对象都是同一个类.容器应该显示数据库表的一些行为,即:

  • 允许将对象的某个字段用作唯一键,即该字段中具有相同值的其他对象不会添加到容器中.
  • 在接受新对象时,容器应发出一个返回给insert方法调用者的数字id.

当请求"重复条目"时,容器应该跳过插入并返回已存在对象的密钥,而不是抛出错误.

现在,我将编写一个通用容器类,它接受实现接口的对象以获取键字段的值,并使用以这些值键入的HashMap作为实际存储类.有没有更好的方法使用现有的内置类?我正在浏览HashSet之类的东西,但它们似乎并不合适.

java collections data-structures

6
推荐指数
1
解决办法
315
查看次数

Maven真的很尊重编译器插件中的<source>标签吗?

我正在开发一个应该与Java 5兼容的Java程序.我对@OverrideJava 6中允许的已实现接口方法进行了注释,但是在5中没有.我使用的是Java 6 SDK.@Override当我将其设置为5.0合规性时,Eclipse正确地给出了错误消息.但是,我的Maven构建在我的POM中使用以下设置运行时甚至没有警告:

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>1.5</source>
        <target>1.5</target>
      </configuration>
    </plugin>
Run Code Online (Sandbox Code Playgroud)

我是否正确期望这实际上会使构建失败?为什么不呢,有什么我可以做的吗?

java maven-2

6
推荐指数
1
解决办法
1629
查看次数

我应该在Linux上使用哪个线程库用于多线程C程序?

我已经用Java完成了线程,但我是C中线程的完整菜鸟.我的第一个问题,在谷歌搜索之后,是:我使用哪个线程库?有关系吗?看来我得thread.hpthread.h选择.

操作系统是Linux,也将是Linux.更具体地说,它现在是Ubuntu,并将保持这样,或成为RHEL.但是我觉得发行版没关系?

c linux multithreading

6
推荐指数
1
解决办法
2927
查看次数

在PHP中,将lambda表达式用于可调用而不是字符串(或数组)是否更有效?

在PHP中,某些函数将"可调用"作为参数,这意味着您可以指定要在某一点执行的函数.一个例子是array_map.

PHP允许您以多种方式指定可调用对象,例如:

// as a string:
$lowerCaseStrings = array_map('strtolower', $arrayOfStrings);

// object methods as an array
// (this could be done with DateTime directly, of course):
class DateFactory {
    private $format;

    public function __construct($format) {
        $this->format = $format;
    }

    public function newDate($dateString) {
        return DateTime::createFromFormat($this->format, $dateString); 
    }
}

$factory = new DateFactory('Y-m-d');
$dates = array_map(array($factory, 'newDate'), $arrayOfDateStrings);

// as a lambda expression / closure:
$dates = array_map(
        function ($dateString) {
            return DateTime::createFromFormat('Y-m-d', $dateString);
        },
        $arrayOfDateStrings
    ); …
Run Code Online (Sandbox Code Playgroud)

php arrays lambda callable

6
推荐指数
1
解决办法
574
查看次数

什么是存储树结构的模型以及它们的特征是什么?

到目前为止,我遇到了邻接列表,嵌套集和嵌套间隔作为模型,用于在数据库中存储树结构.我非常了解这些,并将树木从一个迁移到另一个.

还有哪些其他流行款?它们的特点是什么?关于这个主题有哪些好的资源(书籍,网络等)?

我不只是在寻找数据库存储,而是希望扩展我对树木的了解.例如,我理解嵌套集/间隔对于关系数据库存储特别有利,并且问自己,它们在其他环境中实际上是一个糟糕的选择吗?

modeling data-structures

5
推荐指数
1
解决办法
242
查看次数