使用IBM FileNet P8实现序列号分发器

简介

很多小商店都按照客户到来的大约顺序给他们发放一个序列号,从而让他们有序地排队。序列号通常由一台机器打印在一小段纸条上。如果多个客户同时光临,出于礼貌原因,排队的次序可能受到干扰。

免责声明

附带的样例代码由 IBM 公司创建。该样例代码不是任何标准或 IBM 产品的一部分,提供的目的仅是帮助您开发应用程序。该代码按原样提供,不提供任何形式的保证。IBM 对使用该样例代码导致的损失不负任何责任,不管是否提示可能导致的损失。

软件系统中也通常出现类似的问题。我们需要为事件分配一个号码,同时要确保该号码是唯一的,并且遵从一定的模式。可以通过一些常见的解决方案解决这个问题,但分布式系统让问题变得更加复杂。如果您要使用 ECM 系统为小面包店的客户分配号码,这是非常不现实的。不过,您可能需要分配客户 ID、零件号码或其他更简单的号码。数据库供应商为这类问题实现了序列化列类型。不过,P8 不提供对数据库序列号类型的直接访问,因此您必须使用其他机制。

在本文中,我们将探索如何在 P8 环境中解决该问题。我们先了解需求:

我们需要确保分配的号码是绝对唯一的。同一个号码被分配两次是不可接受的。

我们想要号码遵从某种模式,避免号码分配中出现间断。模式可能包含很多东西,但为了进行演示,本文仅使用简单的递增模式。我们获取到的下一个号码总是大于前一个号码。

我们希望号码分配能够在包含多线程、多处理器、多服务器、多层和多用户 P8 环境中可靠地工作,并且实现出色的性能。

当到达面包店的食品台时,我们希望拿到自己点的美观可口的小蛋糕!

在描述我们喜欢的实现之前,我们首先看几项还不能很好地发挥作用的技术。尽管您永远没有必要实现这个特殊的用例,但是本文描述的要点适用于许多 P8 编程领域。

Java 或 .NET 同步

如果您是企业开发或分布式开发的新手,您首先想到的可能是使用一个大对象,它能够在某种程度上同步访问更新计数器的部分。在 Java 中,这可能是一个 synchronized 方法或代码块。在 C# 中,这可能是一个标记为 synchronized 的方法或受 lock() 保护的代码块。能够进行同步访问的代码块有时称为关键部分。清单 1 显示了实现该代码块的方式之一。

清单 1. 同步代码块

/**
  * *** DON'T DO IT THIS WAY ***
  */
public class Dispenser
{
   /** static access only, so private constructor */
   private Dispenser() {}
   private static int counter = 0;
   public static final synchronized int getNextValue()
   {
     return ++counter;
   }
}

时间: 2025-01-21 05:50:41

使用IBM FileNet P8实现序列号分发器的相关文章

使用Web Services整合IBM FileNet P8 BPM与IBM WebSphere ILOG JRules

管理业务规则与业务过程 引言 现代软件系统设计强调使用业务规则管理系统(BRMS)管理快速变化的业务规则的需求.您可以改进您的业务过程敏捷性来提供更好的决策方法并能更好地维护您的软件系统.业务过程管理系统(BPMS)能够直接利用 BRMS 解决方案所提供的功能. 本文阐述了整合这两个行业领先的软件系统的必要步骤: IBM FileNet P8 Business Process Manager 在人与系统之间管理内容及与人紧密联系过程的工作流. IBM WebSphere ILOG JRules通

如何通过JAVA Security API来定性IBM FileNet P8内容查询和存储的安全

本文分为两大部分,第一部分阐述了 FileNet Content Engine 的安全机制:第二部 分举例说明了如何使用安全相关的 Java API 来设置安全,从而保证存储内容的安全. FileNet Content Engine 安全机制简介 FileNet Content Engine 是 FileNet P8 体系中的核心模块之一,主要负责内容存 储和内容管理.Content Engine 在一个面向对象的容器中提供了一系列服务来支持企业 内容管理和客户自定义对象.Content Eng

IBM FileNet P8 Application Engine的工作原理及新功能扩展

FileNet P8 Application Engine 介绍 FileNet P8 介绍 FileNet P8 是可靠的.可扩展的.高可用性的企业平台,由四大引擎 Content Engine(CE), Process Engine (PE),Application Engine(AE)/WorkplaceXT ,Rendition Engine 组成,通过这些引擎实现存储.管理.保护和处理信息,将业务流程流畅化.自动化,提高操作效率. 每个引擎承载着不同的功能: Content Engin

IBM FileNet Business Process Framework(BPF)简介及商业应用

BPF 介绍 BPF 是什么 IBM FileNet Business Process Framework (BPF)是一应用程序开发框架,能够为典型的商业流程管理提供一种模式,我们不仅能够通过 BPF 的配置工具 (BPF Explorer) 来设计自己的应用程序框架,同时我们还可以通过其接口来添加自己的扩展代码来满足自己不同的需求.当然,BPF需要一个运行平台,BPF 是运行在 IBM FileNet P8(Process Engine.Content Engine.Application

使用AD和Tivoli目录服务器来创建一个多LDAP的FileNet P8环境

比如一个公司起先是使用 AD 目录服务器,但它并购了一家使用 Tivoli 目录服务器的公司.与其花费巨大的人力物力迁移和合并两个目录服务器,一个省时省力的方法是配置一个多 LDAP 的环境.最后,虽然本教程以 AD 和 Tivoli 目录服务器为例,但是对使用其他的 LDAP 服务器来配置多 LDAP 的 FileNet P8 环境也具有巨大的参考价值,毕竟涉及到的基本概念以及相关的操作步骤都是大同小异的. FileNet P8 是整个内容管理以及流程管理平台的统称,需要使用企业级的目录服务器

通过FileNet P8分布式部署方案来错峰使用有限的网络资源

对于集团公司,企业内容的集中管理是目前的一个趋势,在这边文章里,我们讲解某集团银行如何通过 http://www.aliyun.com/zixun/aggregation/19352.html">FileNet 实现企业内容的统一管理. 业务场景描述 某集团银行是我国最大的投资银行之一,下属五十几家分行,分布在全国各地.在日常业务中,每天会产生大量的业务凭证,包括信贷合同.储蓄凭单.支票.会计档案等.如何对这些凭证进行统一集中管理,有效的分类.保存.归档以及查询,是该集团银行面临的一个比较

在 muduo 中实现 protobuf 编解码器与消息分发器

本文是<一种自动反射消息类型的 Google Protobuf 网络传输方案>的延续,介绍如何将前文介绍 的打包方案与 muduo::net::Buffer 结合,实现了 protobuf codec 和 dispatcher. Muduo 的 下载地址: http://muduo.googlecode.com/files/muduo-0.1.9-alpha.tar.gz ,SHA1 dc0bb5f7becdfc0277fb35f6dfaafee8209213bc ,本文的完整代码可在线阅读

理解 IBM Connections 媒体库的播放器定制功能

IBM Connections 是专门为满足业务需求而设计的一款社交软件,它利用社会化的资源助力业务发展,如 它能帮助商业人士组建主题专家网络,让他们更具创新力和生产力.它能促进创建由员工.合作伙伴和客户组 成的活力社区,交换有创造力的想法,帮助不断增长业务.随着 IBM Connections 的升级,IBM Connections 提供了更加方便的扩展方式,使客户能够方便的扩展 IBM Connections 的已有应用,将组织已有资产和 IBM Connections 集成,将 IBM C

java随机事件分发器示例_java

以下需求:20%的概率去执行方法A,1%的概率去执行方法B,29%的概率去执行方法C,50%的概率去执行方法D 如果用if随机数之类的语句去判断的话,可能会写的很乱,我写了一个随机分发器,可以规范该操作.使用该分发器后的代码如下: 复制代码 代码如下:               //创建一个分发器RandomDispatcher randomDispatcher = new RandomDispatcher(); //设置每种事件的概率,注意,概率之和不一定是100哦randomDispatc