📄 0904-0300.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://162.105.170.55/ASPs/GetLearningArticleTemp.asp?section=0904-0300 -->
<HTML><HEAD><TITLE>XML中国论坛 - 初学进阶 - 9.4.3 SoftwareAG的Tamino Server</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>TABLE {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"
}
.pt9 {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"
}
.pt10 {
FONT-WEIGHT: 700; FONT-SIZE: 10pt; LINE-HEIGHT: 18pt; FONT-FAMILY: "宋体"
}
.TempOutline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; COLOR: #666666; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.TempOutline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; COLOR: #666666; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage0 {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage111 {
FONT-SIZE: 9pt; MARGIN-LEFT: 51pt; TEXT-INDENT: -64pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
</STYLE>
<SCRIPT language=JavaScript>
<!--
//以下用于控制文本链接
function MM_goToURL() { //v2.0
for (var i=0; i< (MM_goToURL.arguments.length - 1); i+=2) //with arg pairs
eval(MM_goToURL.arguments[i]+".location='"+MM_goToURL.arguments[i+1]+"'");
document.MM_returnValue = false;
}
//以下用于控制文本缩进
function clickHandler()
{
var targetId;
var srcElement = window.event.srcElement;
var targetElement;
if (srcElement.className.substr(0,7) == "Outline")
{
targetId = srcElement.id.substr(0,12) + "details";
targetElement = document.all(targetId);
if (targetElement.style.display == "none") {
targetElement.style.display = "";
}
else {
targetElement.style.display = "none";
}
targetId = srcElement.id.substr(0,12) + "Image";
targetElement = document.all(targetId);
if (targetElement.src.indexOf("plus") >= 0) {
targetElement.src = "Image/minus.gif";
}
else {
targetElement.src = "Image/plus.gif";
}
}
}
document.onclick = clickHandler;
//以下用于控制标题图片选取
function cache_img (img_URL) {
if (document.images) {
im = new Image();
im.src = img_URL;
}
}
function roll_img (img_name, img_URL) {
if (document.images) {
document.images[img_name].src = img_URL;
}
}
cache_img ('image/menu_homepage1.gif');
cache_img ('image/menu_homepage0.gif');
cache_img ('image/menu_faq1.gif');
cache_img ('image/menu_faq0.gif');
cache_img ('image/menu_learner1.gif');
cache_img ('image/menu_learner0.gif');
cache_img ('image/menu_tech1.gif');
cache_img ('image/menu_tech0.gif');
cache_img ('image/menu_dev1.gif');
cache_img ('image/menu_dev0.gif');
cache_img ('image/menu_software1.gif');
cache_img ('image/menu_software0.gif');
cache_img ('image/menu_standards1.gif');
cache_img ('image/menu_standards0.gif');
cache_img ('image/menu_diss1.gif');
cache_img ('image/menu_diss0.gif');
cache_img ('image/menu_focus1.gif');
cache_img ('image/menu_focus0.gif');
cache_img ('image/menu_news1.gif');
cache_img ('image/menu_news0.gif');
cache_img ('image/menu_lab1.gif');
cache_img ('image/menu_lab0.gif');
cache_img ('image/menu_link1.gif');
cache_img ('image/menu_link0.gif');
cache_img ('image/menu_co1.gif');
cache_img ('image/menu_co0.gif');
cache_img ('image/menu_map1.gif');
cache_img ('image/menu_map0.gif');
cache_img ('image/menu_doc1.gif');
cache_img ('image/menu_doc0.gif');
cache_img ('image/menu_about1.gif');
cache_img ('image/menu_about0.gif');
//-->
</SCRIPT>
<META content="Microsoft FrontPage 5.0" name=GENERATOR></HEAD>
<BODY vLink=#000000 aLink=#000000 link=#000000 leftMargin=0 topMargin=0
onload=""><!-- 以下为主体内容 -->
<div align="center">
<center>
<TABLE border=0 width="100%" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<TBODY>
<TR vAlign=top>
<TD width=36 rowSpan=2></TD>
<TD vAlign=center width="838" >
<p align="center"><IMG height=33
src="image/title_learner.gif" width=226></TD>
<TD width=43 rowSpan=2></TD>
</TR>
<TR vAlign=top>
<TD width="838"><!-- 正文内容 -->
<DIV class=pt10><B>9.4.3 SoftwareAG的Tamino Server</B></DIV>
<DIV></DIV><BR>
<DIV class=pt9>
<P>Software AG是德国的一家多年从事系统软件、ERP、电子商务产品和应用解决方案的软件厂商。Software
AG以MainFrame和数据库技术起家,代表产品有两大类:Enterprise Transaction
Suite包括ADABAS、NATURAL(4GL),Power Suite for
Internet包括Tamino、Bolero、EntireX。该公司设计开发的企业资源规划(ERP)产品Prodis可以在Unix、Windows
NT以及IBM AS/400等操作系统上运行,适用于编制从销售到生产的规划,并可用Software
AG的Natural程序设计语言进行修改使之适应公司的具体需要。另外,Software
AG还通过从微软获得授权进行DCOM的跨系统移植工作,从而使得其基于DCOM的产品支持包括Sun Solaris、OS/390、Digital
Unix、IBM AIX、OpenVMS和Linux在内的6种操作系统。Tamino Server是Software
AG进军电子商务市场的又一武器。</P>
<P>Tamino是一种基于XML的信息服务器,可以用于电子商务系统的应用和开发。Tamino实现了完整的XML数据库系统,而不仅仅提供一种在数据库管理系统同Web应用间的转换接口。Tamino使得异构数据的存取变得更加容易,这些数据可以是简单的文本,也可以是声音、图像、视频等多媒体数据;数据的来源将不受限制,不论数据是来自于原始XML资料库(XML
Store和X-Machine),还是从现有的文档甚至各种数据库系统来源读取。通过预先定义一组文档类型描述格式,再借助系统内置的Tamino
Schema
Editor,使得开发者可以方便地定义需要的底层数据结构;基于URL方式的数据存取方式更是大大方便了XML数据的存储与检索,使得程序员可以从编写繁琐的XML语法分析器代码中解放出来;Tamino
Server提供Server Extensions编程接口,允许用户利用Visual
Studio开发COM组件,通过在组件对象中嵌入商业逻辑,从而开发出适合于用户自己的应用系统。<BR><BR>Tamino
Server的结构如下:</P>
<P align=center><IMG height=287
alt="TU000000-0904-0300-01.gif (10650 bytes)"
src="image/TU000000-0904-0300-01.gif" width=393></P>
<P>由图可以看出,Tamino提供如下功能:
<UL>
<LI>通过XML Store和X-Machine实现XML对象的存储与检索机制
<LI>通过SQL Store 和SQL Engine实现SQL数据的存储与检索机制
<LI>通过X-Node实现同外部异构数据源和应用间的接口
<LI>通过Data Map管理XML数据的存取机制
<LI>通过Tamino Manager进行多个Tamino服务器的Internet远程管理 </LI></UL>
<P>Tamino Server具有几个显著的优点:
<UL>
<LI>使得跨平台、跨系统间异构数据的交换与存取成为可能。在这里,XML起着不可忽视的作用。
<LI>高效。作为XML引擎的X-Machine使得Tamino可以快速高效地处理大量的数据。XML数据直接以原始的对象型格式存储,无需转换成其他格式,减少了中间环节,大大提高了数据处理的效率。
<LI>可扩展性。X-Node的引入,使得Tamino可以同多种数据源和应用系统联结,进一步拓展了Tamino的应用环境。Server
Extension 编程接口使得开发者可以开发适合自己需要的应用系统。
<LI>可管理性。通过Tamino Manager可以进行多个Tamino服务器的Internet远程管理。
<LI>开放式标准。Tamino遵循开放式DBMS原理提供如OLE-DB、DCOM、ODBC和JDBC等标准接口。交换数据格式采用W3C标准XML,查询所采用的W3C草案XQL相信也会在不久的将来成为国际标准。
<LI>支持全文检索。 </LI></UL>
<P>与此同时,Tamino Server也有它自己的弱点:
<UL>
<LI>Tamino在XML元素内容上支持多内码,但不支持元素标记的多内码转换;另外,Tamino 工具也不支持多内码的显示。
<LI>不支持URL直接的XSL样式化输出
<LI>URL-Based的XML数据更新功能较弱 </LI></UL>
<P>最后,来说说Tamino
Server应用。Tamino是一种基于XML的数据管理系统,实现了XML数据的存储与检索。在电子商务、跨平台计算、信息发布等领域有较好的应用。利用Tamino开发的步骤如下:
<OL>
<LI>需求分析:设计出数据字典和商业规则
<LI>定义数据结构:利用Tamino Schema
Editor完成数据结构的定义。通过指定相应的Map-type类型,设置数据的存储方式:XML Store或SQL Store。
<LI>编写代码:
<UL>
<LI>利用URL编写XML数据处理脚本。<BR>原理:在客户端通过Script动态生成XML片断或XQL语句,然后以GET或POST方式发送至Web服务器处理。
<LI>利用Tamino Server Extensions编写消息处理代码<BR>原理:利用Visual
Studio开发COM组件。Tamino Server
Extensions支持下面两种类型的函数(SXF):Mapping函数和事件函数。其中Mapping函数又包括Mapping
In函数,即当XML数据存储入Tamino Server 时由文档处理器调用的函数;Mapping Out函数,即当从Tamino
Server检索XML数据时调用的函数。事件函数主要用于通知Server
Extensions有关事件的发生,包括事务事件(如Commit/Rollback)、会话事件(如会话结束)、Server事件(如断开与Server的连接)。
</LI></UL></LI></OL></DIV>
<P></P>
<P></P></TD></TR></TBODY></TABLE>
</center>
</div>
<P></P>
<P>
<P></P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -