首页>参考读物>计算机科学与技术>数据库

Oricle8i Web开发指南
作者 : (美)Bradley D.Brown
译者 : 乐嘉锦 缪卓群 等译
丛书名 : Oracle技术丛书
出版日期 : 2001-06-01
ISBN : 7-111-08869-7
定价 : 78.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 736
开本 : 16开
原书名 : Oracle 8i Web Development
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书用实际通用的策略,阐明了怎样充分利用Oracle 集成管理工具应用简便的优点和内置Web 的特性。读者还将学到有关Oracle 应用服务器,包括安装、配置、开发以及故障排除等各方面的知识。全书分五个部分:网站的安装和配置及设计、Oracle 应用服务器的核心概念、安装配置Oracle 工具、安装配置各种插件、故障的排除及调试代码和日志与站点分析等方面进行阐述。这些重要的知识可使读者充分地挖掘出Oracle 强大的Web 可实现的性能。
本书的读者对象主要是从事 Oracle 数据库开发人员、Web开发人员;此书会给读者带来意想不到的收益。

图书前言

在Internet技术及其应用飞速发展的时代,很难(如果可能)预计这种势头最终会把我们这个世界引向何方。然而,可以肯定的是—很多公司已经意识到,对于他们业务量的日益增大,首要的任务应是开发Internet上的商务应用。如果你还没有关注到这一点,那么就请关注它,Internet正在改变着世界。
Oracle与Internet
对于想把业务扩展到Internet上的公司,Oracle可为他们的系统提供前所未有的生产能力和便利。由于当今动态的工作组和行业性商务环境,Oracle包括了充分集成的、便于使用的管理工具,具有完全分布、复制和集成的Web特征。复制和分布式数据访问特征,能使用户共享不同应用和服务器的相关数据。内置的Web功能可以完成企业内部Intranet计算的解决方案。本书将探讨使用Oracle和Oracle应用服务器(Oracle Application Server, OAS)来建立在Internet上应用的实用方法。
由于OAS配置了EJB1.0、 Jservlet2.1a、Java(ECO4J)Enterprise CORBA Objects 以及JavaServer Pages(Web 4.0.8.1版),使得OAS 4.0.8扩展了封装的Java。OAS 4.0.8.2大约在本书上市时可发布,它将包括JavaServer Pages (含在发行介质中),改进的 Oracle 8i 互用性(ORB、EJB和8i Libraries)、强大的OTS环境(OCI)、持久稳固的SESSION状态、IIOP/SSL服务器gated crypto(加密机制)、OAS的自动唤醒部件OMB-auto-invocation和一个XML Parser(XML 分析器)。大约在4.0.8.2发布的同时OAS-Lite也可面市,它包括带有no-knobs 和一个小型的footprint单进程的Servlet/PLSQL。它是基于全新OAS 4.1的基础体系,包括与OAS集成的OMB-Message Broker、 XML的更进一步集成以及基础体系的许多改进如:部件体系结构、可用性、性能以及JTS OCI 驱动器。OAS 4.1计划在2000年3月左右发布,它将包含Java以及部件支持,高级EJB/J2EE规范的一致性,带有8.2 OiD的interop、ESM(Security)、名称服务、工具和一次性登录机制等等。所有的单点故障都可被解决,增强的XML支持、通过OEM工具完善管理,开发更高一级的性能,如可扩展性、可靠性以及QoS。
在有关Oracle8i以及它与OAS之间的关系中还存在着一定的混淆。有些人怀疑有了Oracle8i,OAS是否多余,另外有些人听说Oracle8i包括了它自己的Web服务器。可以断言, 对于Oracle8i 来说OAS不但不可免去,而事实上, 它是值得受到称道的。OAS不是与Oracle8i产品一起分发的,这正是OAS-Lite的用处所在。所以即使Oracle8i包括了Web服务器,在很多情况下,用户还得使用OAS。有个例子是,用户用非Java语言运行CORBA对象时,OAS和Oracle8i将仍然保持为两个独立的产品。
Oracle OAS 产品未来仍有一些事情要做,例如,更好地打包。难道所有的Web开发产品(如:Web DB、OAS、Oracle8i和WebAlchemy)都不能捆绑在一起吗?目前在这一点上极易造成混淆。还在1999年8月,Oracle 发布了.com套件,这在一定程度上简化了它的软件“包”(package)。今后它将得到不断的改进,我对这一点表示乐观。同时我也认为Oracle 必须解决总的Web策略。现在是有着太多的“语言”, 用户有Web Publishing Assistant Language; WebDB 在它的Dynamic Pages中有<ORACLE>标记,有PL/SQL工具包;LiveHTML使用Perl作为它的语言;Java被广泛地使用。
对“iFS”有何认识?正如你所知,iFS是Oracle8i的新的部件。 将随8.1.6的版本发布,iFS是Internet文件系统的缩写。iFS允许用户使用功能强大、便于使用的文件系统,数据是存在Oracle8i的数据库中。这对于数据(文档)的管理和简化集成搜索是非常有利的。iFS的一个主要特点是它能以一种格式存入文档(例如:Mword)然后可用不同的格式(HTML)进行查看。这被称做透视文档。iFS将能支持某些缺省的透视(例如:HTML)并带有API,这样你就可以开发自己的文档透视。如此而言,iFS将是8.1.6的产品(Oracle8i下一个版本),但目前8.1.6版本还没排上发布的日程。
如果你的公司有信心期待,Oracle将为你做出其他恰当的解决方案。关注 TheStreet.com的互联网Sector Index中如下事实—15个公司中的13个公司在它的电子商务业务中使用了Oracle技术。从Amazon到Yahoo! 当来到Web上运行高收益、大容量的商务时,“.com”就转向Oracle来满足千百万顾客一天24小时在线的系统需求。同样地,TheStreet.com的电子商务索引成为了15个杰出电子商务公司在互联网上进行电子商务获得收入方面的衡量标准。索引列出的15家公司是:Amazon.com、 Ameritrade、 Beyond.com、 BroadVision、 Dnow/N2k、 Cyberian Outpost、Digital River、eBay、 E4L、 Egghead.com、 E*Trade Group、 Onsale、 Peapod、Preview Travel以及Ubid。
Excite @ Home 拥有2千多万的注册用户,它建立了一个客户化系统,使每个访问者访问网站具有个性化。用户每次返回网站或修改他(或她)自己的配置文档时,这些信息从数据库中检索并重新写入Oracle数据库。通过提供一天24小时,同时对成千上万个用户不间断的、可信赖的服务,Excite @ Home取得了给人以深刻印象的进展,并保持着良好的发展势头。“当竞争的成败仅在瞬息之间,性能确实是关键,” Excite @ Home的副总裁、商务总经理 Andy Halliday 说:“基于Oracle的解决方案, Excite让客户在网站上驻留更长一点时间的想法成为可能,并使Excite得以保持了较快的发展速度。”
Onsale 有限公司工程部副总裁Robert Petrossian 曾说:“我们选择Oracle作为我们Web 站的后台支撑,因为Oracle已被证明为:能同时对成千上万个用户做出支持。我们选择Oracle为技术伙伴,因为他们为我们提供了一个可扩展的电子商务平台。”Onsale直接从制造商处购买货物,然后担当一个为各种类型计算机产品、日用电器、运动器械以及休闲旅游服务的票据交换所,在Internet上进行实时、交互式拍卖。Oracle数据库被用来存放产品信息、定单、消费者资料以及事务信息的统计日志。然后这些信息进入第二个运行的Oracle财务应用软件的数据库,进行开具发票,记录购货定单以及清点登记库存货物。在拍卖管理系统和Oracle应用之间,连续的信息流提供客户24小时的定货和结帐。用这个解决方案,用户可以查看他们的信用卡付款情况、定单到达仓库以及发货的日期和时间。
“无论选择电子商务或其他非商务活动,在网上最成功的公司都是依赖于Oracle的支持。”Oracle全球市场部副总裁Mark Jarvis 说:“在Web上的商务要求像闪电那样迅猛的快速反应,出众的服务,具有可靠性以及可扩展性。Oracle为用户公司迅速成长发展、增强Internet上部分的竞争力方面,提供可选择的服务体系结构。”
不管你们的商务是何种形式、何种内容,你都必须懂得电子商务技术的发展趋势,并对自己的业务模式进行必要的修正。就GartnerGroup集团公司来说,如没有规划好进行必要的商务模式修正,在2001年将失去15%~30%的竞争力。并且有5%的企业由于失去竞争力,导致他们的业务经营将会在2001年底陷入困境。
Bradley D.Brown
现在,简要回顾一下我本人的经历。当我还是个孩子的时候,就是一个小发明家了,同时我也非常喜欢玩耍,我从来就不需要很多的睡眠时间。作为一个孩子,我确实是发明了些小玩意,如:语音驱动录音机等。我曾买了野餐旋转式烤炉的电动机,并把它用在我房间的电视机上来遥控电视机。我是伊利诺斯州普林斯顿小镇人,并以此为骄傲。我的祖父祖母住在普林斯顿,与他们在一起的日子真是太好了。在他们的帮助下,15岁那年,我用自己努力赚来的钱买了我第一辆车—一辆暗蓝色的Dodge Charge车。我八年级时,祖父祖母把我带到了欧洲,这真是太棒了!大约在12~13岁的时候,我赢得镇上举办的Duncan YoYo溜溜球比赛奖项,当时我对影片《Doc Hollywood》似懂非懂,只是在暗地里一心想出人头地。
在就读高级中学的一个夏季,我同时打了3份工,从清晨太阳升起到中午1点。掰玉米,然后到当地的油漆店干活,下班后就去修整草坪。一直到长大成人,我一直以发明家自居。在发明了TUSC以前,有段时间我曾着迷于对Kristen的疯狂驾驶。1985年我发明了被我称为“Comradio”的发明。那时Internet还没有出现,当时我甚至难以想象全球的物理线缆是怎样被连接在一起。我的想法是对全球范围进行广播数字信息,并使用计算机软件把个人感兴趣的信息收集和回放出来,从基本上说,这是个人通信频道,通信收音机或“Comradio”。当Internet刚开始流行普及时, 有一个公司开发了一个工作网站Crayon(CReAte Your Own Newspaper)。当今的发展是在此类似的基础上进行的。我的Yahoo.com与我的“Comradio”在观念是相同的。
小镇的人们有些自己喜欢的运动,在运动中我没有什么特别可称道的成就。在我高中一年级的时候,我的一个邻居John Yong先生,他是理科教师,那时他教我们电子学,在他的影响下我对计算机很感兴趣。我们装了一台HealthKit计算机。从字面上说Kit包含了电路板、电阻、晶体管。计算机装成了,启动它,成功了 !接下来我们学习为它写程序,我们学了BASIC语言。从此,我对计算机的兴趣便一发不可收拾。后来,我们买了一台最早的AppleⅡ计算机—那时我们不想自己再装一台了。在高中三年级时,有次我到Champaign城去观看州级(伊利诺斯州)摔交盛会,在一个店铺窗内看见一台Interdac计算机。回到家后,为想买那台Interdac计算机,我给该店铺写了封信,打算存足够钱后寄出去。我妈在我的写字台上发现了这封信,并寄了出去。后来,我问妈妈这封信的事,她告诉我说替我寄出去了,但她并不知道信的内容。后来,计算机是买来了,我即刻就欠了父母亲400美元。我非常喜欢这台计算机—8kB的RAM,盒式磁带驱动器(仅有的存储器),我把“电视机”连接到PC上作为监视器,它的分辨率大约是30个字符17行。编程语言是BASIC(和汇编语言)。我写了些诸如Human Cannonbal 和Horse Race 等游戏程序。后来,我在大学把这些游戏程序卖给了Interdac公司。事实上,从佛罗里达的春假起我就对这类交易金盆洗手了。
大学期间,演讲课的作业是做一次有关销售的演讲,我的演讲内容包括如何找到一份收入丰厚的暑期工作(10~20美元/小时)。我还讲到有关玉米去雄的工作,并说服了大约十个同学暑期去我家乡做工,他们住在旅店,做剥玉米的合同工。那年我遇到了我的妻子Kristen,那时是她大学的最后一个学期,后来我决定去芝加哥她父母家去度暑假。
Kristen的父亲Wes先生帮助我在Joliet的Econ实验室找了个咨询的工作。整个夏天我为工厂编写了各种程序,可用来处理加班的规章制度。使我了解了不少有关工会的事以及他们的章程。Kristen继续在找正式的工作,在我找到了Econ实验室工作的一星期后,Kristen在Bloomington市(我们上大学的地方)的国营农场找了一份做保险的工作。我们订婚了,并上了Joliet学院的夏季夜班学习,秋天我回到了Bloomington的学校。第二个夏天,我和Kristen结婚了,每星期夏季班花去12小时。我们在前期班和夏季班之间度过了结婚蜜月。我差不多花了三年加上夏季班的时间完成了大学学业。我和Kristen与另一对夫妇加上一个销售员开办了一个计算机公司。我负责软件开发(实际上是副总裁),我的伙伴负责硬件销售。我们卖掉了第一台Kaypro手提计算机。我们写了很多的软件并同时也做些咨询工作。在伊利诺斯州立大学的最后一个学期,我边工作边学习。
大学毕业了, 我得找个“正常”的工作。在我家乡普林斯顿的Pioneer Hybrid International公司(育种公司)找了一份工作。公司中相处的人员都相当有意思,我很满意这份工作。那时,我还要到Des Moines去参加IT的学习,因为当时伊利诺斯州除了我以外,好像还没有谁参加IT的活动。Pioneer公司在邻近为我和Kristen提供一套不算太好的公寓房。Kristen在那里总觉得不自在,于是我就向Pioneer数据系统部的主任要求,能否为Kristen安排个图书管理之类的工作。我们在Des Moines大约呆了两个月左右,然后搬到了普林斯顿,并立刻买了房子,当时我21岁。经常有人来做客,有时我母亲也会来小住一段时间。1985年,我和Kristen都意识到大城市的生活,也许会对我们的生活和事业的发展更有利些。当时我在纽约市中虽然也有些业务,但芝加哥对我们更合适一点,我与芝加哥的Midwest证券交易所(Midwest Stock Exchange,MSE)有些业务关系(现在为芝加哥证卷交易所)。我也为房产经纪人开发了会计办公应用软件和有关租房电信方面的应用软件。工作使我有机会与美国电话电报公司业务上打交道。1987年我和Kristen有了个孩子Austin。
1988年,我到Oracle公司在芝加哥的咨询部工作,在那里我遇到了Joe Trezzo先生和Rich Niemiec先生。我比他们先到那里一个星期,那时我们几个真是狂热地迷恋着工作。1988年,我们三个创立了TUSC软件咨询公司,从那时起我们彼此之间干得都很不错。
1990年我和Kristen又有了个孩子Paige。1994年,我们搬到了丹佛市。1996年初,我对Web上的研究非常投入,并写了我的第一本书,出版于1998年。到了今天,我们继续开发和发布在Internet上的应用—每天都在创新。
我热爱生活,并努力使自己每天的生活变得更充实。我喜欢赋有冒险精神的曲棍球、滑水以及滑雪等项运动。除了花时间写本书外,我经常投入到专业技术方面的其他的写作上。做什么事情都需激情,我正是被人们所激励着,并努力地与他们在一起工作。
本书是自从我第一本书出版后,我所收到的1 500个电子邮件的产物。旨在阐述这些电子邮件所涉及的Web开发问题,以及读者这方面感兴趣的问题。
Web,你的商务,以及你自己
Harry S.Dent在其所著的《Roaring 2000s》书中讲到,我们正进入到了Internet的全盛年代并能在2009年前再度遇上消费热的高潮,那时的道琼斯工业指数(表示美国证券市场一般涨跌行情的指数,由美国纽约Dow Jones公司所发表)会攀上20 500点!我认为这是有道理的!过去Harry S.Dent曾预言过道琼斯工业指数会上10 000点,那次他说对了。但当时,人们都错误地以为他太离谱了是无稽之谈。
不用太长的时间,几乎所有的人都会连接到Internet上,这将使我们这个世界发生引人注目的变化。无线通信网与家中有线光缆之间的通信可以使人们用无线电话与家中个人数字助理(Personal Digital Assistant,PDA)相连接。你的感觉怎样?是否有紧迫感?是否还没有成功的Web上电子商务?无须太多的想象!请读一下《Innovator's Dilemma》,这本书告诉读者,虽然不必一定是第一,但也不能太落后。有不少这类的例子,如:Crayon曾是首家信息收集网站,如今它却落伍了。对于上Internet的电子商务,目前还是早期,再请看bluemountain.com网站,它仅有一个简单的做法—在Internet上供应丰富的贺卡,它卖掉了约15亿美元的贺卡。
你家中对Web的最多的抱怨是什么?浪费时间?速度太慢?找不到所需要找的?搜索引擎还落后于Web高速成长的速率。有些人喜欢Dogpile, 另些人也许习惯于Google, 还有人仍在使用Yahoo,真是举不胜举。美联社出了篇有关《search engines lag behind Net expansion》的好文章。这篇文章有个很有意思的图解,它包括几个Internet搜索引擎和被搜索的Web的百分比。令人惊讶的是,百分比最高的是Northern Light,覆盖web的16%。其他较为常用的搜索引擎是:AltaVista、HotBot、Microsoft、Infoseek、Google、Yahoo! 就是这样,WWW搜索引擎lycos报道的覆盖百分比依次是: 15.5%、11.3%、8.5%、8.0%、7.8%、7.4%、5.6%以及2.5%!该文讨论了Internet搜索引擎没有跟上Web高速成长的速率。理解力最强的引擎—Northern Light覆盖的仅是可被引擎搜索的Internet网页的六分之一,从一年半前三分之一覆盖率的最佳搜索引擎掉下来的。事实上,以前的研究,HotBot曾领先到34%的覆盖,这年掉到的了11%。研究也发现,一个新Web页进入搜索引擎的统计清单内需六个多月。
从零开始建立一个.com或e-business,两个方面必须加以重视:商务和技术,并在进入到技术工作前先把商务方面事务理顺。
如果一个现已存在的公司想进行电子商务,GartnerGroup能以最有效果的五个电子软件包:e-vision、e-management、 e-competition、 e-plans 以及e-review给公司的电子商务创造最多的机遇,并使风险降到最低。
开始电子商务首先需要建立一个概念。如果读者已读了本书,心中便会有个概念。事实上,很多人能通过意识到现存商务或服务中的差距来建立构想。很多企业家们努力搜寻那种他们能够弥补的差距。这构想阶段应该是不仅包括概念,而且也应包括目标和策略。诸如:销售的产品是代销还是自销?计划的销售量是多少?管理和支持你的.com准备投入多少时间?在构想阶段确有少量的问题必须明确,并对规划过程确定目标。
从概念转入到实施,最有效的途径是,建立一个我们称之为 “不动脑筋” 事务环境的计划。换言之,凡对所谓“不动脑筋”概念了解的顾客、投资者以及雇员们都认同这一概念。毫无疑问,不直接见面的大量客户需要一个简单通道,以便顺利地进行商务活动。最要紧的是怎样使构想变成现实。能够最简单地表达出来的构想是最好的构想。马克·吐温曾在他一封短信中含蓄地写过:“如果我有更多一点时间,我会把这封信写得更短一点。”这难道不正是这样吗?化繁为简确实需要花费些时间,请对你的概念花费些时间,使它能被简单地表达出来。
需要做的第一步,是把你构想中的“不动脑筋”事务环境客户化,转化为客户“不动脑筋”事务环境。为提高成效,必须花费点时间论证(定义有价值的命题)客户为什么会需要你的服务?也就是客户的这些意愿是为了什么?包括弄清是为了价格、节约时间或二者都是。客户相对于产品价格来说,是真的需要你的产品吗?那么是指新产品或新的服务内容吗?如果是的,你应该在技术上集中精力,以加速真正的商务处理的产业创新,而不是用其他途径来做同样的事。另一方面,是否有使用产品以及服务的变动?请记住,这样的变动是很难判断的。
建成了客户“不动脑筋”事务环境后,到了通过理解和建立商务事务环境,确保有一个真正的商务或获利的机会。接下来是研究市场规模大小、潜在的竞争者以及商务的总的潜在利润。特别是需要对市场规模进行调查,对于确定一个收入模式概念要清楚(例如:认购、许可证、广告或商务等等)并对你们的服务进行标价。搞清你们的商务成本,然后,确定在市场中哪部分可以谋取“好的利润”。如果在市场中能找到15~20%以上市场份额,请小心哟!事实上,甚至总市场的5%也是极难达到的。久经世故的投资者正谋求着大于100亿美元的市场(这是底限),所以如果你打算接纳风险投资,请有所准备。当创建商务事务环境时(当然是在商务规划中),另一个关键部分是建立一支管理队伍。除非是很例外的情况,你不太可能光靠自己一个人做这些事。对你个人进行如下的判断:你的不足之处、以及这些不足之处对于你成功开创新事业的影响?吸引其他有识之士的能力又是如何、以及怎样来吸引他们?
一旦按自己的构想建立了客户“不动脑筋”事务环境和商务事务环境,你就可以具体开发商务规划。你的商务规划是你成功的重要组成部分,是你通向事业成功的指路标。下面具体谈一下商务规划,有多方面的资源可以对开发商务规划有帮助。你的商务规划要有助于潜在的投资者为你的.com提供经费。如果你不是一个商人,在开发商务规划中甚至还需要考虑到请咨询者或顾问一起参加工作。
在你学习开发商务规划的下一步以前,你也许会坐下来。用八个月(几乎是全力以赴)或更长一点时间来收集足够的资料写出完整的商务规划。如果你准备用的所有的资料来自于你自己的经历,你可以坐下就写(不用研究调查每一个详情细节)这也许会省去不少时间。但你要真正建立一个让投资人心甘情愿的投资规划而不花时间经过调查研究、会见、面谈等项活动是不太可能的。除非在这一步上,你是靠筹集朋友和家庭的资金(或你自己已具备这些资金,你也无须雇佣你自己),在这阶段,你必须能在没有收入的情况下生活。有效地完成该项工作而又保留自己正式的全职工作不是不可能的,至少也是困难的。如果你没有全身心地投入,它就不是一个完善的规划。根据你的情况而定,对于你来说也许是太“高的风险”。
你的商务规划包括了市场销售研究。以下是对市场销售研究的几个主要点:确保你对自己的市场销售研究分析是全面的和彻底的;对自己要进入的市场熟悉;设立明确的目标以及达到该目标的策略;决定怎样进行你的.com的广告宣传。商务的成功与否关键在于市场销售研究。投资者都会问你进入市场后,怎样进行市场渗透?要确定一个被广大客户乐于接受的.com商标名字,在目前市场上需要花费二千万以上美元。
很显然,现在已经没有足够多的好的URL名字(Uniform Resource Locator ,在Internet的WWW服务程序上用于指定信息位置的表示方法)或好的“location”。最成功的Web网站是用传统的广告商标(例如:收音机、出版物、邮件和通信社)做为他们自己的URL和名字。很多的Web网站都可以购买到书籍,但人们买书时(现在可以买其他物品)就想到Amazon,因为他们有明显的共识。Web 范围太大太广,不能指望客户自己能找到一个网站,所以用传统广告的形式来创立标识名字是日益增长的需求,以便人们可主动积极地点击到该网站。你是否曾看到过banner(网页上的像小旗帜一样的标记)类型的广告或像我那样没注意它?在哪里安置进入硕大的闪现banner 广告的继续按钮人们做过研究。在应用中人们首先抱怨的是找不到继续按钮—这意味着什么?
商务规划必须包括慎重考虑后产生的商务实质启动及发展的时间上安排。有关时间上的安排也必须包括产品开发的具体操作计划。例如:第一个月,可以是对自己商务规划的完整的应用作调研(见本书第3章)。第二个月,在你的文件管理,概况等原型版本中确定功能性。要确定哪些需要购买哪些部件要自己建。在第二个月期间,应选择好设计,开发,图解绘画等的人员队伍。应该为你“货真价实”的第一次发布,拟订具体的生产时间进度表。并进一步为以后的产品拟订生产时间进度表。
在第二个月中,还得集中精力和软件商、硬件商进行买卖上的磋商, 完善和批准你的.com的设计。第三个月主要是围绕着开发和完善工作,包括单元测试以及原型系统的完整测试。第四个月可以发布你的原型并在第六个月发布实际版本。
请在网页版面设计与其他事务性内容的设计中,不要忘记方法论以及设计中的5个C(Cool, Content, Context, Contact, Control)。评价你的技术体系结构,其中包括开放的体系结构(CORBA、Unix以及TCP/IP)。解释说明为什么你的选择是可扩展的、可靠的以及可恢复的— 以及为什么这些特性很重要。请说明你用的是成熟的技术并且如何方便地跨平台使用。论证它的实用性,Oracle解决方案确实被使用进去了。第3章介绍了Web应用设计的提示和技术。
同时也必须知道,系统有时会停机。第7章讨论怎样能使你的服务像24小时×7天的昼夜商店那样进行全天候营业。当你的网站停机的时候(预计或未预计的情况),你怎样来处理它?如果你用cookies对客户保持信息跟踪,就能得到有谁在你的网站停机的时候,企图来进行访问你的网站,并可发送信息给他(或她)。例如,如果你访问时正好是在Amazon网站停机的时候,你会收到如同以下所示的电子信件:
亲爱的朋友:
真抱歉!今天你访问我们网上商店时,当时它没在营业中。希望这没有给你带来不便。现在我们已是在营业中了,欢迎你尽快光临!
顺致
最美好的祝愿
你的Amazon网站的朋友们
http://www.amazon.com.
相当不错的沟通,对不对?
重温一下你的 .com中要用的软件。例如:Oracle8i RDBMS、Oracle应用服务器、 Java(第19章)和PL/SQL(第14章)、XML(第13章)、SQL*Net、 SSL(第15章)以及Apache Web Listener(第8章)。并阐述为什么要选择上述软件的理由。详细说明Oracle8i 及其有关Oracle iFS、数据库中的Java 虚拟机、(Java-SQL-PL/SQL)无缝交互、SQLJ-Jave 语言中嵌入SQL语句、增强JDBC驱动器、Web监视器、分区和无限的数据库容量。
制作图片显示你的.com 的N-层体系结构,这一基本的图示把技术体系用便于投资者易于理解的方式集合在一起。
检查你使用的浏览器以及它的部件, 例如:HTML(第11章)和JavaScript(第12章)、用来存储加密的用户ID的cookies、受限的插件程序(例如:Adobe Acrobat Reader)、受限的 java以及XML。说明为什么你的选择是带宽友好的以及它的重要性。如你网站的拨号、小图片以及对色彩方面的低要求等。
接下来讨论硬件(第1章)—开始使用什么硬件设备(例如:Intel Multiprocessor Pentium)以及长期解决方案(例如:Sun、Solaris2.6+)。论证怎样升级你的硬件以及怎样最快最简便地配备它。
评论你网站设在哪里及其理由。例如:你的网站设立在ASP,理由是它靠近主干网中枢(所以它是快的),你的网站具有24×7的全天候系统支持,以及关键任务的冗余技术,并且具有备份和恢复的性能。
你的.com解决方案是通过购买还是自己建造,我的建议是仅建造那些买不到的或价格不合适的解决方案。目前市场上有很多现成的产品可供选择,你网站的软件如不全买,也最好大部分进行市场选购。你的任务是把它们装配起来。
很少数企业被装备成支持所有的电子商务解决方案。由此,对于自己内部难以完成的部分,GartnerGroup推荐采用外部采购的途径是可取的。把基于Web的电子商务服务采用外部采购的途径可被认为是同样可取的。在对于某些不具备核心开发能力的领域,企业电子商务可以决定外部采购。为了企业评价外部采购,GartnerGroup确定并定义了六种Web可实现的电子商务服务以及承销商,并可提供专用软件或外部采购支持。外部采购须与企业内有关部门一起决定,并明确成本和需求。某些商务服务的供给者可提供所有六种功能,而有的供应商是专门提供某一种功能。GartnerGroup同时提供六种功能的外部采购,即主机托管、电子邮件、事务/付款程序、发送销售/定货履行、客户服务、支持以及安全。GartnerGroup陈述基本事实如下:“企业着眼于他们的电子商务的外部采购部分,受益于再指派关键性的资源进入到核心能力。当电子商务解决方案不具备核心能力时,在Internet上进行外部采购专用电子商务功能通常是最好的选择。”
在第3章里讨论项目中的组成人员及作用,他们包括:技师、设计人员、图片绘画员、开发人员、内容提供者(使用者)、测试人员(使用者)、项目管理人员、数据库管理员等。
为项目介绍各种开发工具,例如:Oracle应用服务器、Java、PL/SQL、Perl (第20章)或LiveHTML(第21章)、Cartridge、软件工程及建模工具Oracle Designer(第16章)、用于HTML开发的Macromedia Dreamweaver(第23章)、Oracle应用开发工具(Tool for Oracle Application Developer, TOAD)或其他的PL/SQL编辑器、HTML到PL/SQL的转换工具WebAlchemy(第6章)、网站分析工具WebTrends(第26章)以及报表工具Oracle Reports。Oracle Developer Forms(第17章)怎样适合你的体系结构。
评价网站的安全以及其相关要求(第15章)。例如:SSL、应用认证、域和IP约束、基本(basic)和摘要(digest)认证以及数据库用户认证。同时为防火墙安全性讨论作准备。
另外,在商务规划进程的初期—你的大餐还只在第一道用杯盛的开胃食品时,最佳的主意是选一个好的域名。假如没问题就把域名注册登记上。想好了域名马上就注册登记,不要拖时间。
现在,谈谈钱的问题!当你有了合适的商务规划,你就可以开始考虑筹集资金,这是你建造你的.com的关键一步。你必须有资金来支撑,否则很难实施。几千美元甚或几十万美元都不在此谈论之列,你所需筹集的资金可达数百万美元之多。
从哪儿可筹集到这些资金呢?你怎么找到合适的人,决定跟谁谈、谈些什么?在正式开始金融投资前,必须先准备几件事情。没有一本商务规划的执行纲要、描述和投资计划等,你根本没法跟潜在的投资商和风险资本的投资公司谈。你希望筹集来证实你的构想的经费( 证实你最初的客户事务环境),被称做前期或早期经费。如果你有了被证实的构想,本并且正在寻找另外的资金来启动你的商务,该资金称做第一轮融资,以后的融资是用于商务业务的增长。风险投资公司通常愿意在商务的特定阶段提供融资(例如:早期或仅在后期)。所以应对你所期待的资金类型进行分类。如果你所期待的资金小于一百万美元,这往往是称为“天使投资者”最愿接受的投资规模。
很多书籍和资料定义了风险投资的不同阶段。(例:前、早期、XYZ期、后期以及Pre-IPO期)
一般地说,你可能是在前期(或最有可能的是在朋友们、家人中构想的前期),如果你从最初构想开始或有一个基本的原型,就需要资金来做以下的事项:
1) 做调研。
2) 到处找顾客了解情况。
3) 在各个不同的专业领域聘请顾问。
4) 继续开发客户/商务事务环境。
你可能需要十万美元(如果在技术上还要花钱的话也许更多点)就看你的解决方案是否有这业务的需要。
如果按前面所讨论的商务规划完成所有的工作,你需要的下一笔资金来论证“构想”,这意味着实际上做出产品或建立起服务以及组建一个小的业务队伍和技术人员来与客户进行实际的商务活动。目前,人们通常是筹集一百万至一百五十万美元就可以通过“论证构想”的阶段了。你需筹集多少资金当然是取决于实际所需的花费(超过这个经费数额也可能是昂贵的技术;业务上的成本是可被清楚地定义的)。假如有一个大的市场机遇,那么就可筹集这笔资金。对于投资者来说,这是一个高风险的投资,一旦成功也是一个高回报的投资。
事实上, GartGroup声称开发和启动一个企业的Web电子商务网站需一百万美元。最近,他们对这数值进行了论证,最新的研究预计,在今后两年,这一成本将以每年25%的速度递增。在这最新的调研报告中,另一个令人感兴趣的数据是:成本的79%是与劳动力有关的,而10%的成本花在软件以及11%的成本用于硬件配置。该报告还提出了基于功能的三个成本类别:
■ 三十万至一百万美元用于“ Get on the Map”网站就够了,但在功能上是落在参与的实业家后面。
■ 一百万至五百万美元用于“Run with the Pack”在功能上可以与参与的实业家相当。
■ 五百万至二千万美元可达到“Market Differentiator”(市场的佼佼者),这网站取消了工业竞争的限额,并修正了在线竞争的状态。
不同阶段的投资类型有很多行话和描述。“天使”所参与的投资阶段不太可能超过一百万美元的投资,但“天使”的投资小组可能会超过一百万美元。“天使”与把钱给风险投资公司或给被动投资者是不一样的,他们是成功的企业家,他们很能挣钱,并想直接插手于新的公司。“天使”是为获取高回报率的老练的投资高手,并能意识到这阶段的所有的投资风险。
另一个投资类型,是前期/早期阶段的风险投资。在这个阶段,风险投资公司和他的合伙人为规避风险制订策略。顺便说一下,这也称为风险资金的“sweet spot”(在这阶段,接受风险资金投资的公司类型的另一种描述语)。在这阶段中,给出风险的数量(如果不能论证构想,你就会失去全部的投资)和公司所需支持的数量(对于耐心的投资者,需要有一段时间的接触联系,认识,想法等经历)。这个阶段绝对不是从朋友和家人那里筹集资金的好时机。
去找投资者来进行投资,以企业家所具备的“六个基本条件”作为进行游说的开始(并希望有成果)。换言之,接触联系是关键!把商务规划简要地介绍一下,不直接向接受商务规划的投资者透底,而能很成功是极稀罕的事(除非这公司有极好的信誉)。现今,商机如潮。企业在这商海中,必须能同各界进行驾轻就熟的广泛接触联系。要使服务行业的专业人员(律师,财会人员,商务顾问等等)能够信服地支持你,并请求他们利用他们自己的关系进行联系。 也就是他们代表你进行邀请召集,或把商务规划直接发送给可能的投资者。如果企业没有一定商务上的联系,事情就真的难办了。有些人,他们拟定了一个百分比后直接进行筹款,如果是必要的话,这当然也是一种做法。但这样通常是很难发现一个能信得过、并能一起很好地工作的人。
当你偶遇投资者,你必须有一个能被充分理解的计划。捕获住执行纲要中关键的内容,进行陈述介绍,你应准备好完成的计划来给投资“定位”。商务规划应提供附加的资料以及你的总的想法。例如:产品开发周期以及产品的首次展示会。项目的启动计划必须谨慎妥当。是否将有不止一个的项目期或版本?是否每季度、每六个月就有个新版本?
当投资者认可了你的构想,也就是他(或她)买进公司的时候。主要是围绕公司的所谓“前期资金评估”来着重讨论投资者的投资问题。“前期资金评估”被定义为:在接受到一轮融资前,你的风险投资的及时价值。相信与否,有了可靠的客户以及商务事务环境,一个好的商务规划,管理队伍的几个关键人员或至少有与此相当的人员,你的风险投资就有了一个价值。在融资过程中通过紧张认真的商议谈判进行价值的评估。这样的评估基本上确定了公司对投资者的投资经费回报的百分率,也基本确定了投资者今后某时的投资回报(通常是当这风险投资被出售或做一个IPO)。懂得是什么因素限定了评估,然后确定这风险投资在这些因素中的合适地位,这是非常重要的。评估是技术性很强的过程,在这里面你可多学到些有益的东西。然而,如果风险投资完全闯入职业投资者水平的行列,那就的确是大有学问了。基本上,每一阶段的投资者都期待着与风险相对应的回报。这取决于投资者判断如果在产品成功地渗透了市场(这里被认为有风险的)以后,是否真有一个值得投资的足够大的市场。投资者在这阶段也许需要了解风险投资在今后的三年至五年潜在的价值将是数亿美元。
举例说明:有一个投资者在投资早期愿投资一百万美元,并希望能得到一千万的回报(十倍于原始的投资)。如果一百万美元就是所需的全部经费,而如果风险投资预期收获一百万美元,那么该投资者设想公司达到了它的目标的10%。一般地说,风险投资在后阶段需要追加投资,达到投资者的目标(不包括公司的初始的一部分),也必须考虑币值今后的贬值因素。例如:如果花费了一百万美元以后,另需追加投资一千万美元,除初始投资的贬值因素以外,那些投资者(包括创始人以及雇员)需要得到公司收益的30%。在初始10%投资的简单例子中,这样的投资的贬值因素为7%。那么,现在的风险投资的收获是十倍,回报达到一亿四千二百万美元。所有这些预测就是初始评估(以及所有后续评估),这些初始评估的结果将导致处于萌芽期的公司,有30%~60%的公司在第一轮融资中就放弃了。
除了初始评估的商议谈判进行价值的评估外,在任何阶段融资的商议谈判中,企业必须意识到诸如广泛参与性,雇员参股等其他条件。在商务大范围内要考虑到其他一些问题:你应该在什么时候公开?你应该在什么时候考虑首席执行官(Chief Execution officer, CEO)把商务进行到下一个水平?你想把自己公司建设成CEO体制?信息主管(Chief Information Officer, CIO)体制?或理想型体制?
如果你是一个纯搞技术的并满怀着希望,想从孕育商机的萌芽期中成功地显露出来,那你就需要一个可能是销售方面,也可能是在市场背景等方面的经营商务的执行总裁。在任何阶段,都需要有一个商务与技术专家相结合的意见来规划实际的业务范围。虽然你是技术人员,你也得在商务上扮演一个重要角色,但就技术人员他们自己而言,一般很少有人是这样做的。能否成为开发部副主任、首席技术官(Chief Technological Officer, CTO)或CIO依赖于你敏锐聪明的业务能力和领导艺术。但你将总是个evangelist( 圣经新约福音书的作者, 福音传道者),你必须能使人们信服你的构想,让他们签约并能很努力地工作,为事业成功做出贡献。
既然,融资工作已妥当了,你的商务规划上了轨道。你就可以腾出手来钻研你的“.com”技术。我们的技术员都喜欢这阶段的工作。在应用选择、确定目标、资源成本和选定合适工具的商务规划阶段,完成外出搜集情况等的基础工作。
即使提出了基本设计构想并与投资者进行了讨论,你还必须做很多网站设计的具体事务。一个优秀的Web应用,应设计成实用可行的。应很好地设计成:使用维护简便,直觉性强,开放性(能支持大多数不带插件的浏览器),实用性强的,使人留恋的Web应用。设计中还必须有网络礼节(Netiquette),在主页面上资料不要太拥挤,保证能传达给客户最必需的信息。记住你能使用的特性和有关软件、硬件的局限性。
原型和测试是设计阶段很重要的组成部分,因此它们应体现在你的设计方法中。你的原型是今后版本的根基。测试将在你网站开通前揭示出其正面以及负面问题。
当你设计完成后,就可以进行安装(第2章)及配置(第4章)。确保你的体制结构部分没问题,配置你的硬件,并安装和配置你的软件—Oracle应用服务器。引出安全和登录机制,并建立virtual hosts(虚拟主机)。记住可选择的软件包括:Oracle Designer 以及Developer。另外,在你的应用开发中是否要包括WebDB(第5章)?
接下来进入开发阶段了,为客户端开发所需的工具是HTML和JavaScript,服务器端开发所需的工具是PL/SQL和Perl(CGI和插件)。大多数的项目通常包括PL/SQL和Perl的结合体。文件系统可以针对Web服务器或数据服务器进行开发。引出cookies和ports/security机制。要做数据库认证工作,并选择加锁机制。开发例行程序库包括普通错误处理程序。如果,你使用Word中编写文件,为书中上下文敏感点创建一个书签,然后以HTML方式进行保存。你就可以在线使用你的文档。用Listener log进行使用跟踪(第26章)、研究调查、进行市场分析。
下一步就是测试与调试(第25章)以及性能调整(第4章),你的网站应比标准的商务应用需要更多的测试,必须包含后端(服务器)的代码测试,不同的浏览器(客户端)测试,关于网络方面测试,安全性以及防攻击性测试。在测试中需要考虑的事项是:浏览器支持、网络以及调制解调器的速度、Java,JavaScript的可靠性、以及客户端[PC]配置中关闭Cookies 所引发的有关Cookies 的问题测试。
在进行吞吐量调整时,应注意以下几点:
客户端和服务器端的负载平衡。
让别的服务器来执行FTP、邮件以及数据库服务等任务。
利用UTL_FILE和DBMS_JOBS包来为一些标准的报表产生静态HTML页面。
定期检测网站,确保网站正常运行。
调整相应的插件实例参数。
使用Net.Medic工具来分析网络。
别忘了进行SQL queries、PL/SQL 以及PL/SQL包、CGI、Perl和其他动态程序的性能调整。如下技术也很重要,例如:调节图像减少颜色鉴别、尽量使用缩略图等。
现在你可以实现你的网站了,你只有一次机会来获得第一次印象。用艳丽的颜色来活跃你的网站。图像和音响等是否惟妙惟肖地形象化了。一旦你实现你的网站,完善它就不难了,并且对设计文件的修改所花经费也不多(实际上是整个经费的千分之一)。另外,应该考虑各方面的安全问题,从保护物理装置到环境灾害,从网络防火墙到代理服务器等等。建议写出一个安全措施策略。
一旦启动和运行,你的Web Listener log 文件与你存储的有关.com用户的资料都可提供你一些有用的市场分析数据。你应从你的网站得到以下的信息,在第26章进行进一步的讨论:
Demographics 性别、种族、年龄、文化程度、价值观念、家庭形态、收入。
Psychographics 自我观念、职位、兴趣、观点、信念、嗜好、个性特点。
Clickographics 注意范围、兴趣活动等的中心、爱好、冲动、判断、分析技巧。
Communigraphics 交际技巧、合作、参与。
使用以上的信息可对市场进行预测,以便增加页面点击率和销售量,减低销售成本等。确定用来进行应用程序修改的步骤是重要的。而且也应该制定一个修改控制的策略。以后,你经常会用到它,一开始最好就引起重视。没必要反复投资,对今后的修改应有一贯性。
支持和维护的最后的一项是确定与你的联系途径。客户待解决的问题是通过电子邮件、电话、或传真还是这三种通讯工具都用?测定每种通讯方法回转所需的时间,建立一个方案。
最后一步是对未来进行规划。将来会是怎么样呢?网络速度更快,成本更低,存储器更廉价,还会有些新的事物涌现出来。技术的飞速发展,使我们很难预计今后10年、 25年、或50年的发展形势。我们真正所必须关注的是Web站点的发展。你今天的所处环境?你的发展方向?什么是你所必需的认知?
在进行对未来规划时,建议你考虑下面三个主要的方面:
1) 正如Forrester Reports所定义,.com的未来是事务性内容。
2) Web站需要溶入到人际艺术中。
3) 普遍使用瘦客户机。
新创建一个.com,很像开办一家零售商店。要进行商务计划,市场分析,筹集资金,雇佣雇员等事项。但他们之间最主要的不同点是最终结果—实际店铺与虚拟店铺。
末尾的一个想法,让我谦恭地借用Ralph Waldo Emerson的话,“你在进程中开始起步时,我就要让你单独地往前走。要自己开辟新路,昂首挺胸地前进。”
阅读对象
本书是为像你这样的读者,以及为了解在Web站点上容易实现的,有成效的综合商务Internet开发环境的读者而写。你必须通晓Oracle、Internet体系结构,并具有有关应用服务器的一些经验。对于完全是一个初学者来说,为本书准备的最必须读的一本书,是我的第一本书《Oracle Application Server Web Toolkit Reference》(Oracle出版社1998年)。
本书章节编排
本书包含Web开发人员可能会遇到的一些技术要点和实用性的提示,本书在提出技术课题的同时,尽量提供编码解决方案。在Web站点上用Oracle应用服务器开发以及配置应用时,本书可为你省时、省力、减少麻烦。
本书是以作为基础的第1章“硬件配置”开始。在创建一个Internet应用时,需要探讨研究有关硬件参数。也需要选择好供应商,挑选一套操作系统。规定程序中的逻辑单元大小以及对修补程序也进行了阐述。
第2章“安装”介绍使用Oracle和Oracle 应用服务器安装Internet应用的每个步骤,从系统需求的考虑到改正ORA-600错误,本章节介绍这一整个过程。在本章中,你将学到如何确定Beta中的Bug,如何修改NT服务启动顺序,如何在同一机器上装载OAS(Oracle应用服务器)和数据库。对WebTrends Log Analyzer,Symantec Visual Page,OpenConnect誷 WebConnect,Vital Sign's Net Medic,Eventus'CONTROL和Fujitsu's Cobol Cartridge作了总体的介绍。
第3章“网站设计”讨论新建一个Web站点。你会学到如何组成你的Web队伍,以及每个人员所扮演的角色。解释说明如何优化5个C (Cool、Content、Context、Contact以及Control)以使网站达到最佳效果。这一章也包括了如何规划你的设计,以及怎样能使你的网站从美学角度看来是均衡统一的。 你也可学到有关开发代码标准、使用JavaScript工具以及组织目录等具体内容。这章以瘦客户机的有关考虑结束。
第4章“OAS的配置和调节”介绍了怎样配置Oracle应用服务器。必要时如何停止Web服务 器进程,怎样把OAS从一台机器移到另一台机器。并介绍了怎样管理SQL*Net连接,重安装要点,规划多主机,链接数据库等内容。你将学会设定自动启动,设置SSL启动至结束,配置Java插件。你还将会学到怎样评估你的Y2K的一致性以及怎样处理令人不快的内部错误。
第5章“WebDB”WebDB的优越性。并对WebDB主要的功能,安装的支持,使用工具栏等内容作了介绍。本章节还包括了常见有关WebDB的问题阐述。并介绍了怎样浏览数据库和管理WebDB。本章以怎样用WebDB创建网站结束。
第6章“Oracle的独特之处”内容包括了使用Oracle 其他工具的方法。你将建立一个Web开发工具包,并为你自己创造一个工具包。你将学到有关怎样使用WebAlchemy,和用OWA-CHART产生图片,以及Web Publishing Assistant的使用。如果你想学会如何配置SQL*Het和配置使用SQL*Plus,这正是本章的内容。发现如何做Oracle文件包以及如何使用Oracle企业管理器。本章最后部分介绍了使用Oracle GUI形式的PL/SQL编辑器Procedure Builder。
如果你对进一步学习支持感兴趣,那么第7章“全天候运行”讨论了有全天候支持的重要性。
第8章“HTTP 监听器”介绍怎样使用Oracle Listener。你将学会怎样配置IIS、Netscape、FastTrack、Netscape Enterprise或Apache Listener与OAS一起工作,以及如何从OAS的配置中注销IIS, Netscape, FastTrack,Netscape Enterprise或Apache Listener。另外,本章节还包括了文件缓冲的关闭,保护你的基本域名,监视网站的正常运作。你还将学到发现并修理故障, 如为什么你不能进入节点管理器并从另外一个服务器中拷贝一个监听器。
第9章“Oracle 8i的内置程序包”讨论了内置程序包是使用Oracle开发Web项目的重要部件。你能学到使用dbms-alert程序包发送信息,用dbms-ddl包执行DDL,用dbms-output包输出信息。在第9章中,你能学到怎样用dbms-job进行排队,用dbms-session设置会话属性,用dbms-sql执行动态SQL。还能学到大多数的dbms-utility程序生成工具。 以及怎样用utl-file程序包访问操作系统的文件。
10~15章包括Oracle应用服务器的核心概念信息,第10章“各种版本Oracle Web 服务器之间的区别”介绍了OAS4.0的新特性。第11章“HTML的开发”介绍写HTML的细节,用HTML tables创建forms,以及其他一些内容。第12章“JavaScript开发”把JavaScript与PL/SQL进行比较,并介绍如何把JavaScript嵌入到你的应用。第13章“XML 语言”包括了从XML的基础规则到分析OracleXML SQL的实用程序。第14章“PL/SQL插件”对插件的使用进行全面的介绍。第15章“安全性”介绍安全机制。
16~18章介绍Oracle tools Designer WebServer Generator, 用于Web的Developer-Oracle Forms 和用于Web的Developer-Oracle Reports。你能学到怎样安装、配置以及利用这些工具。
19~22章讨论了其他的一些插件选项: Java、Perl、Live HTML以及Oracle Commerce Server(OCS)。并给出了安装,配置等方面的指导。
23~26章介绍其他各种内容。例如:“帮助Web开发的实用程序”(第23章),“故障的发现与处理”(第24章),“调试编码”(第25章),“日志与站点分析”(第26章)。

英文原书ISBN:0-07-212242-0

图书序言

这是一场真正的革命。 在这一场革命中,电子商务的竞争日趋激烈。经济领域飞速发展的步伐与高速可靠的数据库系统的关系日益密切。对于电子商务,意外故障就意味着一系列的直接利润损失、失去客户的信任、丢失商机以及随之而来的新闻媒体方面的麻烦。有了Oracle 的技术支持服务,客户在开发和实现电子商务的解决方案时,可得到我们尽力的帮助和支持。与此同时,Oracle 技术支持服务也发展成为 Oracle 公司电子商务的一个模式,我们自己也体验深刻。
基于Web 的技术支持的重要性是不言而喻的。我们基于Web的Metalink 服务,能为客户提供Oracle产品和服务方面快速及时的信息以及疑难问题的解决方案。最新的Metalink 版本(Metalink 2.0)将真正实现与客户的在线帮助。除了技术书库和论坛、文档存取、知识库搜索及故障报告搜索之外、用户可以在线定制要接收的信息、管理Metalink的访问、修改合同资料以及查询、创建和修改技术援助请求(Technical Assistance Request,TAR)的内容。
当跨进2000年之际,令人兴奋的是Oracle技术支持部门使用上了自己的客户关系管理(Customer Relationship Management, CRM)软件。多年来,Oracle技术支持部门开发了我们自己的工具和系统来运转我们的业务。CRM的发布,使我们有幸成为首批把我们的技术支持业务放在企业内部网络上的部门(全球范围也可以使用),并且因此提高了工作效率。
我非常高兴地向大家介绍Brad Brown先生写的此书。在新的世纪,我希望这本书能在开发基于Web的解决方案时,为你们提供有价值的信息。
我也向Oracle 公司的Web开发人员推荐这本书,并极力地把这本书推荐给大家。


Randy Baker
Oracle 公司 Oracle Support Service副总裁

作者简介

(美)Bradley D.Brown:暂无简介

译者简介

乐嘉锦 缪卓群 等译:暂无简介

译者序

近年来全球信息化进程明显加速, 特别是Internet技术的迅猛发展。我们已进入了无所不至的网络时代,人们利用Internet即时共享网上的丰富资源,直接交流信息。目前国内有些公司已率先在网络时代领先一步,争先开发网络服务市场。
本书所介绍的有关Web网站开发方面内容较为全面,而且非常实用。它主要包括以下的内容:选择合适的硬件、建立关键任务(mission-critical)、基于事务(transaction-based)的Internet应用。以最优化性能安装和配置用户的网站,设计图片、框架、用HTML、XML和JavaScript链接并实现meta tags以及redirects。利用Oracle内置的JInitiator、GUI PL/SQL编辑器等。用Oracle Designer开发强大的Web编码,在Web上发布Oracle Forms和Reports,实现各种插件选项—PL/SQL、Java、Perl以及LiveHTML。建立Web 数据库应用以及用Web DB实现以内容驱动的 Web网站。用Oracle Commerce Server(OCS)设立一个全功能的在线商店,确保数据库和Web网站全天候运行。最后部分是关于为网站进行编码调试、发现并排除故障的内容。对掌握Oracle技术,用于Web网站开发是非常实用的。
本书在翻译表达上尽可能体现原文语言风格,以便使读者对原著的确切意思有更好的理解。本书翻译中若有不当或误译之处,恭请读者和业内专家不吝赐教。
参加本书翻译的人员有:乐嘉锦、缪卓群、吴琛、付琪琦、魏书军、王宗江、郭瑞强、胡凡、杨晓青、周怡慰、蔡海林、王学奎、余世银等,以及东华大学计算机系96级本科毕业班部分同学 ,夏小玲审校了全书。

图书目录

贺词

译者序
引言
前言
第一部分  准备知识
第1章  硬件配置 1
1.1  选择销售商 1
1.1.1  支持优先权 1
1.1.2  服务 1
1.1.3  兼容性 2
1.1.4  升级能力 2
1.1.5  性能 3
1.1.6  可用性 4
1.2  确定Web服务器和相关硬件的规模 4
1.2.1  选用足够的处理器 4
1.2.2  选用足够的RAM 6
1.2.3  选用足够的存储器 8
1.3  选择操作系统 11
1.3.1  Compaq Tru64 UNIX与Alpha处理器
上的Windows NT 11
1.3.2  Windows NT与Intel处理器上的Linux 11
1.3.3  非Intel处理器上的Linux 13
1.4  研究可用的补丁程序 13
1.5  小结 13
1.6  参考书目 14
第2章  安装 15
2.1  系统配置需求 15
2.2  对客户端的要求 16
2.3  安装OAS 16
2.4  完成安装 21
2.5  修正内部错误 23
2.6  检测beta版的错误 23
2.7  修正OAS-600错误 24
2.8  改变NT上服务的启动次序 24
2.9  在同一台机器上装载OAS和数据库系统 24
2.10  检测IIS是否存在问题 25
2.11  特殊平台上的安装信息 25
2.12  浏览配套光盘 26
2.12.1  Web Trends日志分析器 26
2.12.2  Symantec Visual Page 26
2.12.3  OpenConnect公司的WebConnect 27
2.12.4  VitalSign软件公司的Net.Medic 27
2.12.5  Eventus公司的 CONTROL 27
2.12.6  Fujitsu公司的COBOL插件 28
2.13  小结 28
第3章  网站设计 29
3.1  从Web服务器知识开始 29
3.2  设计你的Web团队 30
3.2.1  Internet执行管理委员会 31
3.2.2  网站主管或业务经理 31
3.2.3  项目经理 31
3.2.4  Web体系结构设计者 32
3.2.5  Web内容主管 32
3.2.6  Web内容经理 32
3.2.7  图形设计师 33
3.2.8  Oracle数据库管理员 33
3.2.9  IT操作管理员 33
3.3  尽可能做到5个“C” 33
3.3.1  Content 33
3.3.2  Context 34
3.3.3  Cool 34
3.3.4  Contact 34
3.3.5  Control 34
3.4  规划设计 35
3.4.1  用户分析 35
3.4.2  建立架构 35
3.4.3  真实性 35
3.4.4  页面一致性 36
3.4.5  重复使用 36
3.4.6  颜色 37
3.4.7  布局和导航 38
3.4.8  可访问性 40
3.4.9  简洁性 42
3.4.10  信息的限量 42
3.4.11  避免设计陷阱 42
3.5  流程设计 44
3.5.1  规划画板 44
3.5.2  静态、动态、半静态或半动态的选择 44
3.5.3  评价动态网页代码 45
3.5.4  用Designer还是手写代码 45
3.5.5  工具箱—可重用的代码 46
3.5.6  从数据库的角度评价 46
3.5.7  设计和标准化数据库 46
3.6  建立编码标准 47
3.6.1  Get与Post 47
3.6.2  是否采用PL/SQL工具箱 47
3.7  了解Internet开发的不同之处 48
3.7.1  考虑状态 48
3.7.2  JavaScript的客户函数 49
3.7.3  JavaScript和数据库的有效性 49
3.7.4  控制访问 50
3.7.5  不愿接受cookie时如何处理 50
3.8  组织目录 51
3.9  考虑瘦客户机 51
3.9.1  缩短装载时间 51
3.9.2  最大化图像标记 51
3.9.3  降低色彩分辨率 52
3.9.4  图形 53
3.9.5  页面的逻辑性 53
3.9.6  记录归档 53
3.9.7  下拉列表 54
3.10  小结 54
第4章  OAS的配置与调节 55
4.1  简要调节 55
4.2  分析和性能调整 56
4.2.1  评述推荐的硬件 56
4.2.2  使用OAS监视器 57
4.2.3  在Solaris上调节OAS 58
4.2.4  在Windows NT上调节OAS 62
4.2.5  调节进程模型 62
4.2.6  优化FTP下载 63
4.2.7  设置交换空间以及分配负载 64
4.2.8  最小化每个客户机的连接数量 65
4.2.9  调节数据库访问 65
4.2.10  调节日志服务 67
4.3  管理OAS进程 68
4.4  管理监听器 69
4.4.1  启动或关闭监听器 69
4.4.2  了解端口 70
4.4.3  网络监听器配置的提示 70
4.4.4  监听器的性能 71
4.4.5  管理你的HTTP监听器 71
4.4.6  监视你的HTTP监听器 73
4.4.7  添加新的监听器 74
4.4.8  配置监听器 75
4.4.9  配置服务器参数 78
4.4.10  调节监听器 85
4.5  配置应用程序及插件 86
4.5.1  应用程序和插件服务器 86
4.5.2  应用程序和插件的生命周期 87
4.5.3  配置插件 88
4.5.4  调节和管理插件 93
4.5.5  配置应用程序 97
4.5.6  修改应用程序 106
4.6  管理和配置数据库访问描述符 107
4.6.1  管理DAD 107
4.6.2  添加DAD 108
4.7  添加节点和进程 112
4.7.1  添加新节点 112
4.7.2  添加新进程 113
4.8  小结 114
第5章  WebDB 115
5.1  为什么要使用WebDB 116
5.2  WebDB的基本功能 116
5.3  安装WebDB 117
5.4  使用导航工具栏 119
5.5  自我帮助 120
5.6  浏览数据库 122
5.7  建立对象和组件 125
5.7.1  Utilities 126
5.7.2  Finding Components 129
5.7.3  建立WebDB组件 129
5.7.4  建立表单 131
5.7.5  建立报表 134
5.7.6  建立图表 134
5.7.7  建立菜单 134
5.7.8  建立框架驱动器 134
5.7.9  建立动态页 135
5.7.10  建立日历 135
5.7.11  建立层次分类 135
5.7.12  建立共享组件 136
5.7.13  建立Oracle数据库对象 138
5.8  管理WebDB 139
5.8.1  最大限度地发挥User Manager
的功能 139
5.8.2  使用Grant Manager 139
5.8.3  使用Role Manager 140
5.8.4  改变口令 140
5.8.5  Reporting privilege 140
5.8.6  配置活动日志 140
5.8.7  设置监听器和数据库访问描述器
信息 141
5.9  监视对象 141
5.9.1  监视用户接口组件的性能 141
5.9.2  检查活动日志 142
5.9.3  监视数据库对象 142
5.9.4  复查批处理作业的结果和性能 143
5.10  建立网站 143
5.11  小结 149
第6章  Oracle的独特之处 150
6.1  建立Web开发工具包 150
6.1.1  启动应用程序 150
6.1.2  寻找很“酷”的工具 151
6.1.3  创建工具包 151
6.1.4  寻找和使用Oracle的免费软件 152
6.2  使用WebAlchemy 152
6.2.1  将HTML页面转换成PL/SQL 152
6.2.2  使用位置表示法和命名表示法 152
6.3  使用OWA_CHART生成曲线图 152
6.4  使用Oracle的Java Plug_In—JInitiator 154
6.5  使用Web Publishing Assistant 155
6.5.1  创建新网页 155
6.5.2  登录数据库 155
6.5.3  建立查询 156
6.5.4  安排查询 157
6.5.5  定义文件选项和选择模板 157
6.5.6  理解Web Publishing Assistant模板
的语言 158
6.6  配置SQL*Net 161
6.6.1  理解SQL*Net的参数 161
6.6.2  创建SQL*Net参数 163
6.7  配置和使用SQL*Plus 164
6.8  SQL*Loader 165
6.9  充分利用Orale File Packager 166
6.10  使用Oracle的Enterprise Manager 167
6.10.1  Instance Manager 167
6.10.2  Schema Manager 167
6.10.3 Security Manager 167
6.10.4  SQL Worksheet 167
6.10.5  Software Manager 167
6.11  使用Orale的GUI PL/SQL编辑器—
Procedure Builder 168
6.11.1  生成Program Units 168
6.11.2  Program Units的调试 168
6.11.3  创建库 169
6.12  小结 169
第7章  全天候运行 170
7.1  Oracle并行服务器 172
7.1.1  OPS的优点 173
7.1.2  OPS的缺点 174
7.1.3  OPS下的错误自动恢复 174
7.2  高级复制 175
7.2.1  高级复制的优点 176
7.2.2  高级复制的缺点 176
7.2.3  用高级复制自动恢复 177
7.3  备用实例 177
7.3.1  备用实例的优点 178
7.3.2  备用实例的缺点 179
7.3.3  用备用实例自动恢复 179
7.4  备用数据库 179
7.4.1  备用数据库的优点 181
7.4.2  备用数据库的缺点 182
7.4.3  用备用数据库自动恢复 182
7.5  第三方解决方案 183
7.6  结合多种解决方案 183
7.7  定制备用数据库策略 183
7.8  终端用户会话中断和应用程序故障屏蔽 184
7.9  小结 184
7.10  参考 184
第8章  HTTP监听器 185
8.1  使用Oracle监听器 185
8.2  用OAS配置IIS、Netscape FastTrack、
Netscape Enterprise或Apache Listener 187
8.3  比较IIS和Oracle (Spyglass)的速度 188
8.4  关闭文件缓存 189
8.5  调整TCP/IP参数 189
8.6  保护基础域名 190
8.7  监控开放式连接 190
8.8  监控站点防止崩溃 192
8.9  启动和停止OAS 194
8.10  设置重扫时间间隔 195
8.11  分析为何监听器没有注意到文件权限已经
改变 195
8.12  发现并解决为何不能访问Node
Manager 196
8.13  从另一台服务器复制监听器 196
8.14  配置监听器使其运行于UNIX机器的80
号端口 196
8.15  小结 196
第9章  Oracle8i的内置包 197
9.1  利用dbms_alert包传递消息 197
9.1.1  register 199
9.1.2  remove 199
9.1.3  removeall 199
9.1.4  waitany 199
9.1.5  waitone 200
9.1.6  signal 200
9.2  用dbms_application_info包设置SGA变量 200
9.2.1  set_module 201
9.2.2  set_action 201
9.2.3  read_module 201
9.2.4  set_client_info 202
9.2.5  read_client_info 202
9.2.6  set_session_longops 202
9.3  用dbms_ddl包来执行DDL 203
9.3.1  alert_compile 203
9.3.2  analyze_object 203
9.3.3  alter_table_referenceable 204
9.4  用dbms_job包排队等待 204
9.5  用dbms_lob包访问对象 206
9.6  用dbms_output包写出输出结果 207
9.6.1  enable 208
9.6.2  disable 208
9.6.3  put 208
9.6.4  put_line 209
9.6.5  new_line 209
9.6.6  get_line 209
9.6.7  get_lines 209
9.7  用dbms_pipe包传递消息 210
9.7.1  pack_message 212
9.7.2  unpack_message 212
9.7.3  next_item_type 212
9.7.4  create_pipe 213
9.7.5  remove_pipe 213
9.7.6  send_message 213
9.7.7  receive_message 214
9.7.8  reset_buffer 214
9.7.9  purge 214
9.7.10  unique_session_name 214
9.8  用dbms_session包设置会话属性 215
9.8.1  set_role 215
9.8.2  set_sql_trace 215
9.8.3  set_nls 215
9.8.4  close_database_link 215
9.8.5  reset_package 215
9.8.6  unique_session_id 216
9.8.7  is_role_enabled 216
9.8.8  is_session_alive 216
9.8.9  set_close_cached_open_cursors 216
9.8.10  free_unused_user_memory 216
9.9  用dbms_sql包执行动态SQL 217
9.9.1  open_cursor 217
9.9.2  is_open 217
9.9.3  close_cursor 218
9.9.4  parse 218
9.9.5  bind_variable、bind_variable_char、bind_variable_raw、bind_variable_
rowid和bind_array 218
9.9.6  define_column、define_column_char、
define_coulmn_raw、define_column_
rowid和define_array 221
9.9.7  execute 222
9.9.8  fetch_rows 223
9.9.9  execute_and_fetch 223
9.9.10  column_value 223
9.9.11  variable_value、variable_value_char、
variable_value_raw和variable _value_rowid 224
9.9.12  last_error_position、last_sql_
function_code、last_row_count
和last_row_id 225
9.10  用dbms_trace包设置跟踪级别 226
9.10.1  set_plsql_trace 226
9.10.2  clear_plsql_trace 226
9.10.3  plsql_trace_version 226
9.11  制作大部分的 dbms_utility包 226
9.11.1  compile_schema 226
9.11.2  analyze_schema 227
9.11.3  analyze_database 227
9.11.4  format_error_stack 227
9.11.5  format_call_stack 227
9.11.6  is_parallel_server 227
9.11.7  get_time 228
9.11.8  get_parameter_value 229
9.11.9  name_resolve 229
9.11.10  name_tokenize 230
9.11.11  comma_to_table 230
9.11.12  table_to_comma 230
9.11.13  port_string 231
9.11.14  db_version 231
9.11.15  analyze_port_object 231
9.11.16  exec_ddl_statement 232
9.11.17  current _instance 232
9.11.18  active_instances 232
9.12  用utl_file包访问操作系统文件 232
9.12.1  fopen—版本1 234
9.12.2  fopen—版本2 234
9.12.3  is_open 234
9.12.4  fclose 234
9.12.5  fclose_all 235
9.12.6  get_line 235
9.12.7  put 235
9.12.8  new_line 235
9.12.9  put_line 235
9.12.10  putf 235
9.12.11  fflush 236
9.13  最大化utl_http包 236
9.13.1  request 240
9.13.2  request_pieces 240
9.14  小结 241
第二部分  核心概念
第10章  各种版本Oracle Web服务器之间的
区别 243
10.1  OAS4.0新特性一览 244
10.2  管理上的新特性 244
10.2.1  深入了解OAS Manager的导航树 246
10.2.2  理解OAS Manager的操作按钮 247
10.2.3  回溯OAS Utilities的导航树 248
10.2.4  OAS命令行的实用程序的评价 250
10.2.5  访问在线文档 250
10.3  OAS体系结构的增强 250
10.3.1  理解含有插件的应用程序 251
10.3.2  调节可以运行多线程插件的插件
服务器 252
10.3.3  理解OAS事务 253
10.3.4  平衡负载 254
10.3.5  时刻准备失败恢复 255
10.3.6  加强安全机制 256
10.4  插件的改进 256
10.4.1  安装PL/SQL插件的Web Toolkit 256
10.4.2  Application与PL/SQL Agent
的比较 257
10.4.3  使用灵活的参数传递 258
10.4.4  使用位置的参数传递 259
10.4.5  从脚本中执行PL/SQL源文件 260
10.4.6  实现用户自定义的验证 263
10.4.7  从数据库中上载文件或下载文件 269
10.4.8  详细了解OWA_CONTENT包 273
10.4.9  理解Content Helper 276
10.4.10  使用新的OWA_UTIL.MIME_
HEADER参数 276
10.4.11  使用新的OWA_UTIL.CELLSPRINT
参数 276
10.4.12  废弃OWA_INIT包 276
10.4.13  认真考虑Perl插件的增强特性 276
10.4.14  考虑LiveHTML插件 276
10.4.15  查看 Java插件 277
10.5  使用OAS 4.0及其他Oracle产品 278
10.5.1  简述Oracle的企业开发器套件 278
10.5.2  认真考虑Oracle JDeveloper套件 278
10.5.3  使用Oracle Developer Server 278
10.5.4  OAS与Oracle Application的结合 279
10.5.5  使用Oracle的Enterprise Manager 279
10.5.6  实现Oracle Internet Commerce Server 279
10.5.7  使用Oracle Payment Server 279
10.5.8  购买Oracle Data Mart Suite 279
10.5.9  使用Oracle Express OLAP Server 279
10.5.10  Oracle Discoverer的评价 279
10.5.11  实现Oracle Video Server 279
10.6  OAS 4.0及OAS 4.0企业版的比较 280
10.7  第三方工具与OAS的捆绑 280
10.8  OAS 4.0需求的评价 281
10.9  小结 282
第11章  HTML的开发 283
11.1  书写HTML代码 284
11.1.1  用浏览器编程 284
11.1.2  <NOSCRIPT>标记 285
11.1.3  <NOFRAMES>标记 286
11.1.4  <NOEMBED>标记 286
11.1.5  <NOLAYER>标记 287
11.2  查看HTML源程序而非浏览结果 287
11.3  在给定的时间间隔内刷新网页 287
11.4  使用HTML表格 288
11.5  在表格中添加图形 289
11.6  创建HTML表 290
11.6.1  可输入的限定数据 291
11.6.2  创建按钮功能的图形 293
11.6.3  使用URL和超链接 295
11.7  强制并排表单 299
11.8  实现层叠形式表单—优点和缺点 300
11.9  创建Email的主题和文本 301
11.10  从HTML表中发送Email 302
11.11  缩排文本 302
11.12  在同一行中设置两个标题 302
11.13  创建电视屏幕显示 302
11.14  清除所有的框架 303
11.15  参考CGI脚本 303
11.16  添加页记数器 304
11.17  小结 305
第12章  JavaScript 开发 306
12.1  比较PL/SQL和JavaScript 307
12.1.1  是否使用分号 308
12.1.2  定义变量 308
12.1.3  JavaScript的关键字和保留字 308
12.1.4  简述JavaScript的正文 308
12.1.5  分隔并美化代码 308
12.1.6  注释JavaScript 308
12.1.7  理解JavaScript的操作符 309
12.1.8  控制程序结构 309
12.1.9  模型化对象或对象模型化 310
12.2  OAS的复杂性 311
12.3  处理浏览器间的不兼容性 312
12.4  书写来自PL/SQL的特定浏览器代码 313
12.5  重用JavaScript代码 314
12.5.1  模仿WebDB的JavaScript库的功能 314
12.5.2  编写PL/SQL JavaScript库包 314
12.5.3  使用JavaScript库代替内嵌JavaScript
过程 315
12.5.4  引用静态的JavaScript库 316
12.6  编写用户自定义的报警处理 316
12.7  在屏幕上显示属性 317
12.8  打开新窗口传递参数 321
12.9  对JavaScript变量赋值 321
12.10  使用提交按钮 322
12.11  校验表单的字段 323
12.12  用onError事件处理器处理异常 324
12.13  用PL/SQL代码和各种浏览器进行
工作 325
12.14  在JavaScript中建立二维数组 326
12.15  为JavaScript变量赋值 326
12.16  从选择表中调用PL/SQL过程 327
12.17  同步地改变表框 328
12.18  解决访问被拒绝的错误 328
12.19  创建JavaScript菜单 328
12.20  作为URL的一部分传送空格 329
12.21  调试带报警的 onFocus 事件无效 329
12.22  预订JavaScript OnFocus 的时事通信 330
12.23  评价可视化JavaScripts工具 330
12.23.1  简介NetObjects ScriptBuilder 330
12.23.2  浏览Netscape的Visual JavaScript 330
12.24  小结 330
第13章  XML语言 331
13.1  理解XML的基本规则 332
13.1.1  定义文档类型说明 332
13.1.2  定义良好的格式 332
13.1.3  定义有效性 333
13.2  检查XML文档句法和结构 333
13.2.1  注意大小写 333
13.2.2  检查在DTD中的元素类型的说明 333
13.2.3  在DTD中检查属性列表说明 334
13.3  检查通用XML文档的API 335
13.3.1  查看文档对象模型 335
13.3.2  查看SAX 336
13.4  比较XML和HTML 337
13.4.1  简介XML和HTML共同的起源 338
13.4.2  简介XML和HTML 语法和结构中的
不同 338
13.5  创建样本XML文档 338
13.5.1  创建嫌疑犯的DTD 338
13.5.2  创建文档 340
13.6  使用XSL格式化和显示XML文档 340
13.6.1  定义XSL 340
13.6.2  使用XSL将XML数据作为HTML
来显示 341
13.7  Oracle8i 对XML的支持 344
13.8  检查XML和Oracle上下文 344
13.9  检查Oracle XML Parser 345
13.9.1  安装Oracle XML Parser 345
13.9.2  在数据库外部运行Oracle XML
Parser 345
13.9.3  在数据库内部运行Oracle XML
Parser 354
13.9.4  获取Oracle XML Parser实用程序 359
13.10  检测Oracle XML Class Generator 359
13.10.1  实现Oracle XML Class Generator 359
13.10.2  获取Oracle XML Class Generator 366
13.11  测试Oracle XML SQL的实用程序 366
13.11.1  定义OracleXML类 366
13.11.2  定义OracleXMLStore类 367
13.11.3  定义OracleXMLQuery类 367
13.11.4  定义OracleXMLSave类 367
13.11.5  定义xmlgen PL/SQL包 367
13.11.6  获取Oracle XML SQL实用程序 370
13.12  检查Oracle XSQL Servlet 370
13.12.1  检查Oracle XSQL Servlet的依赖性
和要求 370
13.12.2  生成动态的XML文档 371
13.12.3  获得Oracle XSQL Servlet 372
13.13  小结 372
第14章  PL/SQL插件 373
14.1  从PL/SQL与HTML到Web的开发 374
14.1.1  了解PL/SQL Web工具包 374
14.1.2  使用HTML知识 376
14.1.3  使用WebAlchemy 377
14.1.4  WebAlchemy的奇妙功能 378
14.1.5  增加PL/SQL编码的逻辑性 379
14.1.6  调用Web过程 380
14.2  传送参数到PL/SQL过程 381
14.3  检索CGI环境变量 382
14.4  保留源代码历史记录 383
14.5  存储Cookies程序 384
14.6  引用伪列 385
14.7  计算时间到百分之一秒 385
14.8  PL/SQL的外部调用 385
14.9  通过包裹或保护过程来避免查看源
代码 386
14.10  重定向用户到其他的URL 386
14.11  用UTL_FILE发送电子邮件 388
14.12  提取并查看BLOB 390
14.13  查询列表框中的多重选择 390
14.14  不使用<PRE>包裹文本 392
14.15  从PL/SQL中生成PDF报告 392
14.16  清除缓冲区 393
14.17  改进PL/SQL的出错信息 393
14.18  新的ROWID格式 394
14.19  调试PL/SQL 394
14.20  使会话消失 395
14.21  加密关键信息 395
14.22  基于用户的要求排列数据 395
14.23  编辑PL/SQL代码 397
14.24  升级后收到授权检测失败信息 397
14.25  从IP中获取域名 398
14.26  丢失单选按钮 398
14.27  提交表单 398
14.28  重定义操作 399
14.29  将数字逐个转换成单词 399
14.30  加强客户会话 400
14.31  使用事务服务 401
14.32  获取用户信息 403
14.33  PL/SQL XML实用程序 408
14.34  理解为什么htp.linkrel是有用的 408
14.35  OAS PL/SQL 4.0 Web工具包附件 409
14.36  小结 409
第15章  安全性 410
15.1  OAS的内置安全性 410
15.1.1  为虚拟路径设置安全保障 411
15.1.2  配置验证服务 411
15.1.3  比较In-memory和ORB通信 416
15.2  应用程序级安全性 417
15.2.1  对每个请求进行验证 418
15.2.2  传递验证 418
15.2.3  结合数据库验证 418
15.2.4  结合基本或摘要验证 418
15.2.5  使用owa_custom 418
15.2.6  Baking cookies 418
15.3  网络安全性 454
15.3.1  SSL基础 454
15.3.2  设置SSL 455
15.3.3  设置SSL的提示 455
15.3.4  保护数字证书 456
15.3.5  使用数字ID 确保Email的安全性 456
15.3.6  确保信用卡传输安全性 456
15.4  RDBMS的安全性 457
15.4.1  使用PL/SQL加密 457
15.4.2  PL/SQL接口到Oracle密码工具箱 457
15.4.3  计划安全性策略 457
15.5  物理安全性 458
15.6  小结 458
第三部分  Oracle工具
第16章  用Designer开发Web代码 459
16.1  理解由Designer生成的包 460
16.1.1  理解模块、包、过程 461
16.1.2  理解对命名的例程的处理 462
16.1.3  理解事件是如何被处理的 463
16.1.4  理解用户文本是如何被处理的 463
16.1.5  理解过程参数 464
16.1.6  理解包定义的记录类型 464
16.2  将视图并入到生成的模块中 464
16.3  在使用生成模块时建立有效的数据库
安全性 465
16.4  使用事件和命名例程 465
16.4.1  使用命名例程 466
16.4.2  使用事件 466
16.5  权衡主要的Web Server Generator选项和
属性 467
16.5.1  在模块成员内使用HTML标记 468
16.5.2  在用户文本中注册和使用外部的
PL/SQL包 468
16.5.3  设置模块版面风格 468
16.6  使用框架和样式表 469
16.6.1  使用样式表 473
16.6.2  利用<style>标记包含一个
样式表 474
16.6.3  参考外部样式表 474
16.7  使用无约束项 476
16.8  权衡用户文本区 476
16.8.1  使用PL/SQL函数的格式化文本 477
16.8.2  用HTML格式化文本 477
16.8.3  添加HTML语法到用户文本中 477
16.8.4  通过HTML Editor添加整个HTML
文件 478
16.9  使用JavaScript 479
16.9.1  避免版本出错 479
16.9.2  使用外部JavaScript库 480
16.9.3  创建Oracle服务器端的JavaScript
库 481
16.9.4  理解Web Server Generator命名惯例 481
16.9.5  事件处理句柄的命令惯例 481
16.9.6  了解CTL参数 482
16.10  覆盖Designer 的默认功能 482
16.11  参数的使用 483
16.12  使用Cookies和PL/SQL在模块间导航 484
16.12.1  用PL/SQL和HTML创建定制的
        超级链接 484
16.12.2  使用Cookies在模块中建立动态
        超级链接 484
16.12.3  定义Cookies 484
16.12.4  建立cookie 484
16.12.5  读cookie 485
16.12.6  使用cookie建立链接 485
16.12.7  多cookie的限制 486
16.12.8  用逻辑cookie超越20个cookie的
限制 486
16.12.9  对Web Server Generator模块
        运用逻辑cookie 492
16.13  列值表的讨论 493
16.13.1  简述Web Server Generator中
        列值表的特点 493
16.13.2  用Oracle8对象建立定制的列值表 494
16.13.3  列值表对象的编码 494
16.13.4  列值表对象的实现 511
16.14  小结 513
第17章  Oracle Developer—Forms 514
17.1  确定是否使用Oracle Forms 515
17.1.1  Oracle Forms如何工作 515
17.1.2  状态、许可证和内存 515
17.1.3  表单是否已存在 516
17.1.4  浏览器和带宽 516
17.1.5  选择的决定时刻 516
17.2  安装Oracle Forms 517
17.3  确保图标出现在Web上 518
17.4  作为CGI来配置Oracle Forms 518
17.5  作为插件配置Oracle Forms 6.0 519
17.6  作为插件配置Oracle Forms 5.0 521
17.7  创建通用插件的HTML文件 522
17.8  理解插件URL 526
17.9  使用非Oracle的Web服务器 526
17.10  生成并放置FMX文件 526
17.11  将Forms Server设置成Windows NT
      服务的方式 527
17.12  启动和关闭Forms Server监听器 527
17.13  配置Forms客户端 527
17.14  设置负载平衡 528
17.15  设计Web应用程序 528
17.15.1  减少网络阻塞 528
17.15.2  选择字体 529
17.16  内存需求是否要求过高 529
17.17  理解Web上Forms的性能限制 529
17.18  寻找有关在 Web上运行Forms的好
文章 530
17.19  用Oracle8和Forms 5.0 PL/SQL
    分析系统时间 530
17.20  解决FRM-40735错误信息 531
17.21  小结 532
第18章  Oracle Developer—Reports 533
18.1  在Web上发布Reports 534
18.2  设置Reports Server—通用信息 534
18.3  配置Oracle Reports作为一个CGI 538
18.3.1  在NT下把Reports设置成CGI 538
18.3.2  在UNIX下把Reports设置成CGI 539
18.4  把Oracle Reports 6.0配置为插件 539
18.5  把Oracle Reports 3.0配置为插件 540
18.6  设置可选的Reports参数 541
18.7  指定URL以在Reports中运行请求 543
18.8  添加Web功能 544
18.8.1  超链接 544
18.8.2  创建书签 546
18.9  对参数表单的提示 547
18.10  在UNIX下为Oracle Reports配置
一个默认的打印机 547
18.11  标识Reports Server错误 548
18.12  同时运行多个报表 548
18.13  利用MetaLink分析RUN_PRODUCT
失败的原因 549
18.14  为Web页创建页眉、页脚和分页符 550
18.15  解决在IE (以及AOL)中的PDF问题 550
18.16  提高Oracle Reports 性能的提示 556
18.16.1  SRW.DO_SQL语句 556
18.16.2  使用CDE_MM.GET_REF 557
18.16.3  何时使用多重查询数据模式 557
18.16.4  索引 557
18.16.5  更改 557
18.16.6  断开列 558
18.16.7  最大行数和组过滤器 558
18.16.8  没有用到的数据模型对象 558
18.16.9  没有用到的框架 559
18.16.10  总页数 559
18.16.11  格式化触发器 559
18.16.12  Oracle图形集成 559
18.17  开发数据生成Acrobat PDF文件 559
18.18  小结 560
第四部分  其他插件
第19章  Java和OAS 561
19.1  理解Oracle对Java的支持 561
19.2  确定是否要使用Java 562
19.3  客户端Java 562
19.4  编写大部分服务器端Java程序 563
19.4.1  Java插件 563
19.4.2  Servlets 563
19.4.3  Java Server Pages 563
19.4.4  Enterprise Java Beans 564
19.5  在OAS中使用Java技术 564
19.5.1  Jweb—Java插件 564
19.5.2  Servlet 576
19.5.3  Enterprise Java Beans 577
19.6  小结 585
第20章  Perl和Perl插件 586
20.1  学习掌握Perl 587
20.2  测试和调试Perl 587
20.3  使用Perl插件 588
20.4  使得CGI Perl与OAS协调工作 588
20.5  与其他监听器一起使用Perl 588
20.6  模拟NT环境下的插件 589
20.7  在OWAS版本3中安装和配置Perl插件 589
20.8  修正OWAS版本3中的Perl演示版 589
20.9  在OAS版本4中安装和配置Perl插件 589
20.10  使用标准CGI库 590
20.11  避免出现Save as的对话框 590
20.12  显示文件列表 590
20.13  确定文件是否存在 593
20.14  生成或追加文件 593
20.15  从perl调用PL/SQL过程 593
20.16  用Perl提供字节服务 594
20.17  从命令行中仿效浏览器 594
20.18  从命令行中仿效邮件请求 594
20.19  清理你的HTML 594
20.20  访问Perl文档 595
20.21  查看环境参数 595
20.22  从Perl发送邮件 595
20.23  确定客户端的浏览器并进行相应操作 596
20.24  包含站点的组成部分 596
20.25  解决在OWAS 3.0文档中OraPerl的
引用问题 596
20.26  解决在OAS 4.0文档中OraPerl的
引用问题 596
20.27  在 LiveHTML插件中使用Perl 597
20.28  对比DBD和DBI理解OraPerl 597
20.29  使用OraPerl 597
20.30  OraPerl源代码的例子的评价 598
20.31  理解use OraPerl语句 599
20.32  建立与数据库的持久连接 599
20.33  OraPerl示例源代码评价 600
20.34  小结 604
20.35  提供Perl信息的网站 604
第21章  LiveHTML插件 605
21.1  找一个好的帮助 605
21.2  安装LiveHTML插件 605
21.2.1  激活LiveHTML 605
21.2.2  Parse LiveHTML Extensions Only
参数 605
21.2.3  LiveHTML Extensions参数 606
21.2.4  激活执行标记 606
21.2.5  激活ICX标记 606
21.2.6  核对ICX中的〈body〉标记 606
21.2.7  默认页面 606
21.2.8  激活脚本执行 606
21.2.9  脚本页的扩展 606
21.2.10  默认的脚本语言 607
21.2.11  最大请求 607
21.2.12  Perl应用库路径 607
21.3  在LiveHTML中应用Perl 607
21.4  创建一个计数器 608
21.5  在一个页面中包含另一个页面 608
21.6  从LiveHTML中调用Oracle 608
21.7  小结 609
第22章  oracle Internet商务服务器 610
22.1  考虑OIC的使用对象 610
22.2  安装OIC 611
22.2.1  安装所有部件 611
22.2.2  检查是否安装成功 613
22.2.3  找出安装失败的原因 614
22.3  卸载OIC 614
22.4  考虑第三方产品 615
22.5  网上商店特征 615
22.5.1  进行销售 616
22.5.2  设置优待券 616
22.5.3  建立用户的优先选择 616
22.5.4  搜索 617
22.5.5  接收顾客的反馈意见 617
22.5.6  检查定单状态 617
22.6  对象分层结构 618
22.7  网上商店的总体概念设计 618
22.8  创建商店的批装载 619
22.9  网上商店的维护 623
22.9.1  查看网上Store Manager Utility 623
22.9.2  最佳化批装载 624
22.10  量身定制网上商店 628
22.10.1  修改HTML模板 628
22.10.2  创建自己的模板 635
22.10.3  扩展Java类 636
22.10.4  STEPPING OUT—非OIC的
定制 640
22.11  2.0版本的新特点 652
22.11.1  在平面文件中使用增强的批装载 652
22.11.2  增强Java的性能 652
22.11.3  优化价格结构 652
22.11.4  使用付费插件 652
22.12  其他的电子商务解决方案 653
22.13  Broadvision 与InterWorld的比较 657
22.14  小结 658
第五部分  其   他
第23章  帮助Web 开发的实用程序 659
23.1  走近图形开发工具 660
23.1.1  评价Paint Shop Pro 660
23.1.2  使用Animation Shop 661
23.1.3  用MapEdit创建图形映像 662
23.1.4  最大限度地使用GIF的创建集 663
23.2  开发工具需要考虑的事项 664
23.2.1  决定是否需要程序文件编辑器 664
23.2.2  最大限度地利用TOAD 666
23.2.3  使用SynEdit 669
23.2.4  NetObjects ScriptBuilder 3.0 669
23.2.5  理解Dreamweaver的功能 670
23.2.6  关于HomeSite 671
23.2.7  最大限度地利用SnadBoy
Revelation 672
23.3  评价其他工具 673
23.3.1  理解WS_FTP 673
23.3.2  了解WinZip的价值 674
23.3.3  使用Traceroute 675
23.3.4  自动内容的创建 676
23.4  把Access RDBMS转换成Oracle
RDBMS 676
23.4.1  把Access迁移到Oracle表中 677
23.4.2  建立/修改一个ODBC连接 677
23.5  目录工具箱 681
23.5.1  目录间的比较 681
23.5.2  文件间的比较 682
23.5.3  文件的合并 682
23.6  Anawave WebSnake工具 682
23.6.1  捕获 101 683
23.6.2  创建一个新的项目 683
23.7  小结 688
第24章  故障的发现与处理  689
24.1  你知道答案 689
24.2  你知道怎样找到答案 689
24.2.1  日志文件 689
24.2.2  异常的处理 690
24.2.3  书以及其他的媒体 690
24.2.4  Oracle支持 690
24.2.5  搜索引擎和网络站点 691
24.3  你知道谁知道答案 691
24.4  你知道何时寻求帮助 691
24.5  小结 692
第25章  调试代码 693
25.1  评价一般的调试技术 693
25.2  用PL/SQL应用程序来涂绘整个屏幕 694
25.3  决定谁控制行级锁 694
25.4  购买PL/SQL调试工具 696
25.5  不涉及用户视图的调试 696
25.6  检查一般的Oracle错误 696
25.7  提供比“请求失败”更进一步的
信息 696
25.8  查看日志文件 697
25.9  使用合适的纠错技术,减少错误恢复
的时间 697
25.9.1  在每个程序单元中使用异常
处理器 697
25.9.2  记录所有反常的错误 701
25.10  采用raise_applicaton_error给用户界面
发送出错信息 705
25.11  在应用程序内设计增强版调试/跟踪
逻辑 709
25.12  用一个错误数组同时列出所有
有效错误 713
25.13  用版本报表包来确保编码的正确性 716
25.14  小结 719
第26章  日志与站点分析 720
26.1  Web服务器的使用日志概况 721
26.2  获取有关日志文件格式的进一步信息 722
26.3  查看Web网站的管理工具 722
26.4  评价iLux解决方案 722
26.5  比较Web Trends解决方案 723
26.5.1  WebTrend日志分析 724
26.5.2  Referrer日志分析 725
26.5.3  代理日志分析 725
26.5.4  链接分析 726
26.6  定义WRB日志及监听日志 726
26.7  为PL/SQL插件调整错误的严重程度
配置 727
26.8  了解日志记录器 728
26.9  日志数据库的使用 728
26.10  用日志记录表开发自己的报表 729
26.11  评价XLF的日志参数 733
26.12  从Log Analyzer中获得更多内容 734
26.12.1  从数据库得到报表的用法—
默认的XLF Reports 735
26.12.2  为用户定义的XLF Reports设定
日志分析器参数 735
26.12.3  为用户定义的系统信息报表设定
日志分析器参数 736
26.13  上传日志文件至数据库,以创建
用户定义的日志报表 736
26.14  小结 730

教学资源推荐
作者: [英]托马斯 M. 康诺利(Thomas M. Connolly) 卡洛琳 E. 贝格(Carolyn E. Begg)著
作者: Philip M. Lewis, Arthur Bernstein, Michael Kifer
作者: 何玉洁 张俊超
参考读物推荐
作者: (美)Ben Forta 著
作者: (美)Richard Yevich等
作者: 孟小峰 编著