|
联邦目录管理解决方案
用户面临的问题:
国内企业开始大规模的应用开发已经有多年了。最初的应用开发往往每个自成一体,有自己的用户库、自己的权限控制模块。随着应用数量的增加和应用逐步在整个企业的部署,用户信息的集成和共享日益成为一个复杂的问题,试想一下如果有十个应用,每个应用会有上千用户,用户的整合将是一个庞大的工作,当然更多棘手的问题还包括如何在不对原有应用进行改动的情况下来建立企业的用户目录,以及如何让企业用户目录可以按照业务需求被各种应用来访问。
某运输业公司业务遍布全国,全部依赖于计算机的自动化处理,其应用开发横跨多年,由不同的应用开发商负责开发工作。现在的状况是该公司的十多个应用都有自己的用户数据库,有的在数据库表中,有的在文件,当然新的一些应用采用了LDAP作为用户信息存储的标准。二千多个员工需要分别在不同的应用中维护自己的用户帐号,其复杂性可想而知,但该客户的应用又无法一步到位地全部重新开发,如何基于一个标准,如LDAP,来逐步建立和完善企业用户目录成为一个难解的问题。
IBM解决方案:
无疑,Meta-Directory,“元目录”,将会是一个最好的解决方法,更进一步而言,结合业界流行的LDAP目录服务器,IBM建议客户通过元目录工具来建立企业的目录服务系统,从而为企业的各种应用服务,以实现用户目录的联邦。
元目录可以连接企业中不同目录来源中的用户信息,并且可以为这些目录中的用户数据提供一个企业级的视图,从而可以把原先不同目录树中的用户信息紧密联系在一起,方便各个应用更为方便、有效地实现用户身份的确认和用户帐户信息的部署。
IBM Directory Integrator(IDI)就是一个基于100% Java技术的元目录系统,不但可以跨平台运行,而且其运输装配线(Assembly Line)工作模式可以在不引入一个集中用户存储的数据库的情况下就实现分布式的用户信息同步和复杂操作。
如图所示,IDI的一个重要能力就是和各种数据源的连接能力,IDI最新的V6版本提供了多达几十种的连接器,国内客户常用的包括和数据库、Lotus Domino、MS Exchange、LDAP、File等的连接器,除此之外,IDI来提供了Web Service、JMS、HTTP、JNDI、TCP、URL等的连接器。用户信息处理的逻辑关系则是在装配线(AssemblyLine)中完成,除了简单的用户属性匹配之外,客户可以通过简单的Java Script进行逻辑部分的定制,从而满足其需求。而整个装配线的驱动则是可以业务需要来定义,可以根据时间、事件或者自定义的条件从外部程序来触发用户信息的同步和更新。
前面提到的运输公司最终通过IBM Directory Integrator将其存放在数据库表中、文件中、LDAP中的用户信息进行了基于一个基准用户信息库的同步和更新。同时,利用IBM Directory Server构建了其企业级的用户注册库,为用户的主动管理和规范管理奠定了基础。
用户收益:
用户收益是显而易见的,通过元目录工具IBM Directory Integrator,客户可以快速整合原先分散的用户信息,并且根据业务逻辑提供给各个应用系统,显著减少高度复杂的用户信息集成所造成的人力、物力和财力的浪费。
IBM产品清单
IBM Directory Integrator
随着现有企业规模的扩大,内部员工以及外部客户数目的增多。每个企业开始寻求一种方法或者技术,用以提高内部员工、外部客户、IT维护人员等对人员信息的操作和使用效率。一个坚固可靠的“身份结构”甚至可以帮助企业把他们内部的流程安全地展现给他们的供应商、客户以及大量的、自动的机器到机器的交易。对于您来说,目录树的概念也许并不陌生,它可以用于存储应用涉及到的用户信息(包括内部员工、外部的供应商、客户等)。在现在的企业中,目录树将会成为安全和应用架构的重要组成部分,甚至于是核心的地位,企业在选择目录树的时候,也会把它作为一个重要的、策略性的决定而认真考虑。
现在,一个典型的大企业会有超过100个不同的目录树为不同的应用服务。因此,企业也就会自然而然地面临到下面的这些挑战:
如何有效地管理这些不同的目录树?
如何管理同一个用户在不同目录树中的信息?
如何有效地控制用户对这些目录树的访问?
如何管理和这些应用相关的安全隐患?
无疑,最新的技术,Meta-Directory(元目录),将会是最好的解决方法。元目录可以连接企业中不同来源的目录树中的数据,并且可以为这些目录树中的数据提供一个企业级的视图。它是一个非常好而且非常实用的技术,可以把不同目录树中的用户信息紧密地结合在一起,从而更有效、更方便地实现用户身份的确认、用户ID的部署。元目录技术强大的功能在于企业可以通过元目录技术快速高效地把那些为不同应用服务的目录树集成到一个企业级的目录树中,同时,原有应用的管理人员还可以利用他们已有的工具来管理他们本地的目录树。来自Gartner Group的调查表明,70%拥有1000台以上机器的企业将会在2005年之前使用Meta-Directory的技术。
为了满足这个增长的需要,IBM推出了基于元目录技术的自己的软件产品 – IBM Directory Integrator。IBM Directory Integrator是一个用于数据集成的中间件产品,它可以提供元目录服务,同时为人员和资源结构提供更为广阔的信息。它在实现以上功能的同时,保留了很大的灵活性,它不必引入一个用于存储所有数据的集中的数据库,它所实现的管理模式是一种分布式的管理模式。IBM Directory Integrator完全开放的环境提供了强大的灵活性和扩展性,它已经做好准备来满足Web服务的需求。实际上,IBM Directory Integrator对于它所工作的数据类型和操作系统没有任何限制,它可以对任何类型的数据进行操作。
IBM Directory Integrator提供了许多内置的针对不同目录树、不同数据库、不同数据格式、不同传输协议的连接器;提供了一个开放式的Java开发环境以满足对连接器的扩展;提供了各种各样的工具用以配置连接器以满足对数据的各种操作。IBM Directory Integrator可以帮助您:
在不同的应用和目录树资源之间同步和交换信息
跨不同数据存储库的数据管理
建立一个坚固可靠的目录树结构,可以被众多的应用使用
集成基于目录树结构的信息,例如:产品名称和价格数据等这些并非和用户相关的信息
不象第一代元目录产品,IBM Directory Integrator把复杂的集成过程简化成一个个小的、可以管理的流程,叫做组装线(AssemblyLines)。组装线代表了被连接系统间的单独的数据流向,同时,它也可以很容易地进行开发和部署。IBM Directory Integrator显著地减少了由于高度复杂的集成造成的人力、物力和财力的浪费。
IBM Directory Integrator开放式的结构为企业提供了最大的自由度以保护他们已有的投资,例如:他们已有的目录树工具和数据,他们现有的IBM或者非IBM的解决方案。其他一些元目录产品和解决方案需要建立一个企业环境中的集中控制点,它使用的是一种占用大量网络和系统资源的、过时的目录树到目录树的技术,这种解决方案很难升级,并且有很大的限制。IBM Directory Integrator使用的是一种开放的、灵活的拓扑结构,它摒弃了那种不灵活的使用集中数据库的结构,采用的是无永久数据储存的模式来提供显著的可扩展性和性能优势。
IBM Director Integrator的概念
问题的简化
无可置疑的是,元目录是一项非常复杂的技术,它涉及到许多领域中的技术,它的实现也是非常复杂的。IBM Directory Integrator的方法是尽可能的简化这个复杂的、庞大的数据集成工程,把它分成若干个独立的单元,然后逐一地进行处理。这些独立的单元是就是数据流,他们代表着不同系统之间数据的传输和转译,在IBM Directory Integrator中,我们把这些数据流叫做组装线(AssemblyLines)。每一条组装线提供了一个唯一的、智能的数据通路,我们可以对在这条通路上传输的数据做各种各样的处理,例如:数据集合、数据转译、遵循业务逻辑处理数据、事件触发机制、错误处理机制等。
建立连接
组装线包括了多个双向的数据访问模块,我们叫做连接器(Connector)。每一个连接器针对于一种特定的数据资源,例如:数据库、目录树、消息队列等。IBM Directory Integrator包括有一个全面的连接器库,我们可以根据实际的环境对连接器进行选择和配置,并把他们放入到组装线中。每一个单独的连接器,或者整条组装线可以在任何时候做测试和调试工作。这会把一个集成的过程变成一个互动的、探索的过程,使得整个集成的过程变为简单而且愉快的配置和调试过程。
业务规则和事件处理
当一个组装线完成之后,我们还可以通过编写Java程序来实现在组装线之上的额外的处理逻辑和功能。或者利用系统支持的编程语言(例如:JavaScript、VBScript、PerlScript)直接在组装线和连接器中加入额外的处理逻辑和功能。
为了支持被连接系统的实时的数据集成,IBM Directory Integrator提供了大量的事件处理器(EventHandlers)。事件处理器是建立在连接器之上的,因此,每一个事件处理器都针对于一个特定的数据源。一旦设置好连接参数之后,事件处理器便被配置好等待变更事件的产生,例如:
数据库触发器
目录树的变更
一个特定帐户的新邮件
在某一个特定IP端口的活动
在某个目录或者FTP站点下出现一个新的文件
在消息总线上相关消息的出现
在预先定义好的端口上传来的HTTP请求
作为Web服务一部分的SOAP消息
事件处理器可以在一个特定的时间间隔(例如:每5个小时)被激活,用于处理组装线的批量处理,例如:定期地做两个目录树之间的数据同步。
一旦事件处理器被启动,它可以配置成解析和翻译来自数据源的变更事件信息。基于用户预先定义好的处理逻辑,事件处理器可以执行一个或者多个组装线,从而在整个框架结构中驱动这个事件。
数据转换
IBM Directory Integrator本身提供了多种连接器和事件处理器,有些连接器和事件处理器处理的数据符合标准的格式(例如:LDAP中的数据),而有些就不符合。对于那些接收没有固定格式的数据(例如:文件和来自某个IP端口的数据流)的连接器和事件处理器,IBM Directory Integrator提供一系列可以客户化和扩展的编译器(Parser)。每一个编译器只用于处理某一种特定的数据格式(例如:XML、SOAP、CSV等),它可以用于解释输入的数据流的格式,也可以为输出的数据流提供数据格式。
所有的IBM Directory Integrator的模块(连接器、事件处理器、编译器等)都可以利用Java或者支持的编程语言进行替代和扩展。而且,我们也可以根据实际的环境,利用IBM Directory Integrator的图形化界面创建、测试、部署自己新的模块。
IBM Directory Integrator简介
IBM Directory Integrator提供的是一套完全开放的系统,它提供了一个快速搭建,快速测试、快速部署的集成环境,而且这个环境是与平台无关、与软件提供商无关的。
由于IBM Directory Integrator完全是由Java写成的,因此它可以运行在任意一个可以提供JVM(Java虚拟机)的操作系统平台之上,例如:Windows、UNIX和Linux等。由于IBM Directory Integrator还支持常见的编程语言和Internet标准,因此它可以和多种异构平台及技术进行无缝集成,例如:Microsoft的.NET和Sun的J2EE
模块化的搭建
IBM Directory Integrator为创建集成方案提供了良好的开发和测试环境,同时它还为在用户的实际环境中部署这个集成方案提供了运行服务器。因此,通过IBM Directory Integrator可以实现集成方案从创建、测试到最后的部署的全部步骤。
方案的创建是通过插入IBM Directory Integrator的不同组件来实现的,每个组件用于处理特定的API、协议、传输或者数据格式。IBM Directory Integrator的组件把那些详细的技术细节都已经处理完毕,例如:如何连接不同的数据源;如何访问存在数据库、目录树、注册库、应用或者设备中的数据。因此,集成方案的专家可以专注于业务规则和处理逻辑的设计、数据对象的处理、数据格式的转变等非底层技术的实现。
IBM Directory Integrator可以把来自不同数据源的数据格式转化为标准的格式,从而简化方案的创建、保留和重用。同时,IBM Directory Integrator还可以建立和维护组件和程序库。因此,已有的IBM Directory Integrator集成方案中的任何部分都可以被用于创建新的方案。
集成环境
IBM Directory Integrator是一个集数据转换、集成开发和方案部署于一身的环境,它提供了一个富有创新意义的软件解决方案,模块化、可升级的、可扩展的都是它不可多得的特性。IBM Directory Integrator为数据库和目录树的集成提供了一种非入侵式的解决方案,它可以为现有的数据库和目录树提供足够的安全保障。IBM Directory Integrator的益处在于它可以简化各种各样集成方案中遇到的困难并且提供一个最为快速的部署方案。
支持的标准
IBM Directory Integrator支持大多数的标准协议、传输模式、API和数据格式,例如:JDBC、LDAP、JMS、JNDI、XML等,并且可以对众多的注册库和技术进行无缝地操作。不论对于企业内什么样的身份结构和什么样的组织结构,IBM Directory Integrator都可以提供一个稳固的基础,用于集成企业内部不同的数据库和目录树。
企业身份结构
一个企业的身份结构可能包括目录树、数据库、注册库甚至文本文件。IBM Directory Integrator设计用于连接所有这些系统。IBM Directory Integrator能够连接来自不同软件厂商提供的目录树系统,例如:Computer Associates、Critical Path、IBM、iPlanet/Sun、Microsoft、Novell、OpenLDAP、OpenWave、Oracle、Siemens、Syntegra以及其他LDAPv3协议的目录树。除此之外,IBM Directory Integrator还支持业界流行的消息系统,例如:Lotus Domino和Microsoft Exchange。
快速开发和部署
IBM Directory Integrator可以快速地进行部署,并且可以满足广大用户的多种要求。IBM Directory Integrator的图形化用户界面和集成模块库可以让使用者以最快的速度创建数据传输和转译的解决方案。IBM Directory Integrator内置的调试器和编码测试窗口使得测试和调试变得简单、快速和直观。
IBM Directory Integrator可以被安装和配置在和现有信息系统相对独立的环境中,并且在特定的时间对数据进行同步。当和应用进行集成时,IBM Directory Integrator可以使用事件驱动的操作方式,利用事件处理器对实时产生的事件进行处理。IBM Directory Integrator的功能可以通过使用编程语言(例如:JavaScript、Visual Basic和PerlScript)进行快速的扩展。IBM Directory Integrator还提供丰富的集成API和开发者支持以满足更深层次的客户化能力。
支持的软硬件平台
IBM Directory Integrator可以运行在任何支持Java虚拟机的硬件设备上,它本身带有IBM JRE 1.3.1。下面列出了IBM Directory Integrator可以支持的操作系统以及相应的版本:
Microsoft Windows NT
Windows 2000
Linux Intel
RedHat
SuSE
United Linux
RedHat Advanced Server
Linux s/390
RedHat
SuSE
TurboLinux
Solaris
HP-UX
IBM AIX
IBM Director Integrator的组件
下面列出的是在IBM Director Integrator结构中最为重要的组件:
组装线(AssemblyLines):基于连接器、事件处理器、编译器以及业务逻辑的配置,对数据进行加工和处理
事件处理器(EventHandlers):使得IBM Director Integrator可以对由连接系统产生的事件作出判断并且根据不同的事件作出不同的处理动作,以满足系统实际运行情况的要求。
连接器(Connectors):负责连接各种设备、系统或者应用并且执行相应的操作。
编译器(Parser):把数据流编译并且转译成适合的数据格式。
组装线(AssemblyLines)
在IBM Director Integrator中基本的组织单元是组装线。他描述了数据流从什么地方来,数据流中的数据如何被转译以及数据流在什么地方终止,组装线的工作包括如下内容:
从数据源处获取数据
对获得的数据进行加工处理或者创建新的数据项以备下一步使用
在数据流的目标地,增加、修改、删除数据
组装线利用连接器来和大量的数据库、API或者传输协议进行进行通讯。数据直接在被连接的系统之间进行传输、转译、汇集和同步,不需要做任何本地的储存。当然,在一条组装线上也可以同时处理多个连接的数据源或者数据目标。
事件处理器(EventHandlers)
事件处理器提供了等待在连接系统中发生的特定事件,并且迅速做出反应的能力,这种能力为IBM Director Integrator增加了许多处理过程中的灵活性。下面是一些事件的例子:
在目录树中的修改变更
接收到新的邮件
在指定的数据库中有数据备更新
接收到来自Web服务器或者浏览器的HTML页面
接收到新的基于Web服务的SOAP消息
固定的时间间隔(例如:每隔5分钟)
其它由使用者自己定义的事件类型
连接器(Connectors)
组装线由各种连接器组成。连接器定义了数据流的源和目标。IBM Director Integrator提供了大量的连接器,用以支持不同的系统、协议和访问机制。我们可以非常容易、快速地对已有的连接器进行扩展。我们可以通过系统支持的编程语言创建一个新的连接器或者扩展已有的连接器。
当组装线从连接器读取到数据,会进行数据属性对应、检查数据项、并且做必要的修改,然后再把数据从到数据流的目标地。自行编写的代码程序可以实现更为细化和高级的功能。
编译器(Parser)
为了满足不同的数据格式,IBM Director Integrator使用编译器。编译器知道如何把数据流中的数据解释和翻译成有结构的数据格式。例如:如果一个连接器从一个文本文件(或者e-mail或者TCP/IP堆栈)里读取数据,管理员可以通过编译器来定义数据在文件中的结构或者格式。IBM Director Integrator提供了许多的可以扩展的编译器,例如:
字符隔开的数据
固定的数据列
LDIF
XML
SOAP
DSML
IBM Director Integrator可以通过使用Java或者其他的编程语言对编译器进行功能的扩展。
编程语言
IBM Director Integrator的一个重要的能力就是可以通过多种系统支持的编程语言对所有IBM Director Integrator的组件(包括:连接器、事件处理器和编译器等)进行功能和特性上的扩充。IBM Director Integrator支持多种插入式的编程语言以及可以用于组装线、连接器、事件处理器和编译器的扩展代码库。最常用的编程语言包括:Java、JavaScript、VBScript和PerlScript。
连接器(Connectors)
连接器是IBM Director Integrator中最为重要的组成部分,通过它可以连接不同的系统,并且对系统进行读、写、修改、删除等操作。IBM Director Integrator本身带有了一系列丰富的即插即用的连接器,下面列出了一些系统自带的连接器:
数据库类型连接器
通过对JDBC和ODBC的支持,IBM Directory Integrator可以连接到多种数据库系统中,例如:
CA Ingres
IBM DB2 and Informix
Sybase
Oracle
Progress
Microsoft Access and SQL Server
MySQL
目录树类型连接器
IBM Directory Integrator支持LDAPv3和JNDI,可以提供对以下目录树的访问:
CA eTrust
Critical Path
Sun (iPlanet, Sun ONE Directory Server)
IBM (Lotus Domino and IBM Directory Server)
NEXOR
Novell (eDirectory/NDS)
Microsoft (Active Directory and Exchange)
OpenLDAP
Siemens
Syntegra
DNS
Sun NIS
其它传输协议和访问机制类型连接器
IBM Directory Integrator还为以下的传输协议提供连接器和编译器:
文件系统(File System)
命令行(Command Line)
TCP/IP
SSL
LDAP
JMS
SNMP
SOAP
HTTP
HTTPS
FTP
COM
POP/IMAP
对新协议的支持可以通过利用Java或者其它支持的编程语言来实现。
消息服务类型连接器
IBM Directory Integrator包括了一些特定的针对消息中间件的连接器:
FioranoMQ
IBM MQSeries
Progress SonicMQ
Web Service
ERP应用类型连接器
IBM Directory Integrator还可以通过以下的途径和流行的ERP系统(SAP R/3、PeopleSoft)进行连接:
底层的数据库系统
通过ERP系统提供的API |
|