J2EE建设多媒体打点软件办理方案
当前位置:以往代写 > JAVA 教程 >J2EE建设多媒体打点软件办理方案
2019-06-14

J2EE建设多媒体打点软件办理方案

J2EE建设多媒体打点软件办理方案

副标题#e#

新的事务模子的目标是逐渐使最终用户可以或许用尺度化的和常见的软件打点、检索和操纵存储的多媒体资源–譬喻相片、视频和行情资料。在操作现有的内部技能来低落本钱和发生利润的时候,现有的媒体业务还用来实现会见它们的多媒体资源的尺度化值。尽量在已往几年中存储量、处理惩罚本领和软件都有重大的成长,可是打点数字媒体资源仍然是一件价钱相当高的工作。一些研究表白,大大都的多媒体文件长短布局化的资源;只有很少一部门存在于干系数据库和现有的应用措施中。布局化的缺乏使有效地会见和从头操作数字资源变得很是坚苦。

中间件平台–出格是应用措施处事器–老是处理惩罚数据资源的操纵。在建设多媒体加强应用措施的进程中利用应用处事器仿佛是对这种技能固有强度的一种自然延伸。然而,和数字资源相关的巨细、布局和元数据的根基的差别使你需要回收与J2EE平台建设的干系数据库和已有资源差异的方法来操纵。本文将以后刻可用的和正在开拓这两个角度来探讨建设多媒体应用措施所需要的尺度和技能。我还将接头在存储、索引、会见和检索多媒体资源的进程中J2EE所起到的浸染,以期把这个平台的规模扩展到数字资源规模。最后,我还将探讨J2EE平台必需办理的问题,以利用户可以最优化地利用多媒体资源。

三个特性区分和界说了一个多媒体资源。在多媒体资源和已有的相关数据之间最大的根基不同是媒体文件的巨细。固然压缩技能正在不绝地改进,可是巨大的视频可能音频数据流仍然动辄以千兆字节计。固然此刻已经有了存储和打点极大数据流的数字内容打点系统,可是没有用于会见这些生存的资源的尺度化应用措施编程接口可能机制。

还可以从布局上来区分多媒体资源和其他数据。一般来说,你可以把传统资源作为单独的组件来会见和利用。可是多媒体资源大概包括若干个元素,譬喻视频流、音频流、相关的字幕信息和其他数据集。维护这个布局是数字资源打点系统的一个根基要求。

最后,多媒体文件凡是由二进制信息构成。因此,传统的查询、索引和检索文件的要领不合用于多媒体规模。为了应用措施可以或许乐成地打点、检索而且操纵一个多媒体组件,你必需维护数字资源和描写这种资源特征的元数据信息之间的干系。

诸如JDBC和JCA这样的现有的J2EE平台类型阐发了用于数据会见的协议,你可以遵循这些协议建设一个基于尺度要领的措施来检索多媒体资源。新的尺度还必需进一步加强界说的J2EE组件模子的多媒体本领。

得到多媒体和中间件平台之间最佳组合的要领主要在于你如何界说一个用于会见数字资源的存储抽象层。为了保持应用措施移植性,你必需操作可能扩揭示有的尺度来办理数字媒体存储特性,好比插入、更新可能查询资源。

J2EE建树多媒体解决软件治理方案

图⒈界说一个存储抽象

WebDAV类型是一个对HTTP举办扩展的协议,用于办理数字媒体存储巨细、布局和元数据这三个方面(见图1)。它提供了跨 Internet协议的漫衍式编辑和版本节制的本领,可以和现有的HTTP客户端交互操纵。WebDAV被利用在网络存储办理方案和Web处事器、很多编辑东西(包罗微软公司出品的Internet Explorer欣赏器、Apache Slide客户端、Apple OS X Finder、Microsoft Office、和Adobe应用措施)和大部门的操纵系统中。很多办理多媒体存储的内容打点产物支持WebDAV。譬喻Apache Slide体系机构利用WebDAV作为客户端会见协议。Slide提供一个抽象层,答允对机制范例的选择用于所有它的存储,包罗内容和元数据。这把内存存储、数据库存储、基于XML的存储等思量进去。

惠普多媒体平台和Apache Slide工程操作WebDAV协议和所提供的关联的客户机和处事器应用措施编程接口来建设数字存储抽象成果。这种办理方案提供一个利用规格化、尺度化和简朴方法会见多后端内容打点措施的要领。这些平台提供了像WebDAV servlet这样的Web组件让开拓者和任何WebDAV处事器接口,把很多WebDAV处事器整合到一个连系内容处事器中,可能建设基于请求信息的自界说办理方案。你可以利用HP WebDAV servlet和可以截取WebDAV请求和在存储和检索操纵期间执行数据处理惩罚的servlet过滤器同时利用。有用的操纵包罗元数据和内容的提取、调动可能索引。

通过操作尺度化J2EE组件,你可以建设一个可伸缩和容错的基于中间件的内容打点系统。譬喻,你可以连系WebDAV servlet、相关的处理惩罚过滤器和Apache Slide来生成一个内容处事器,可以或许存储文件、这些文件隶属的元数据属性和基于元数据属性的文件的搜索。这样一个系统在J2EE应用措施体系布局平台上执行,而且可以利用平台的机能、可伸缩性、安详和可移植性等特性。

#p#分页标题#e#

客户端的存储器接口还可以操作J2SE和 J2EE这两个版本的属性和设备。因为URL配置被构建进J2SE平台中,你可以在Java虚拟机中安装一个WebDAV协议处理惩罚措施来简化到WebDAV内容打点系统的客户接口。J2EE组件可以潜在地操作JCA毗连器实现来建设存储企业组件和应用措施。譬喻HP多媒体平台的WebDAV毗连器会见遵从WebDAV协议的处事器作为企业资源:

ConnectionSpec spec;
ConnectionFactory factory;
WebDAVConnection conn;
factory =(ConnectionFactory)ctx.lookup("java:comp/env/webdav/local" );
spec = new WebDAVConnectionSpec("/", "username", "password" );
conn = (WebDAVConnection)connectionFactory.getConnection
( spec );


#p#副标题#e#

发明和会见

一旦你已经建设一个基于尺度Java的机制来用于存储和检索多媒体资源,你需要一个查询和发明存储的文件的要领来建设加强的多媒体应用措施。元数据的要害用途是改进信息的查询和检索。元数据实质上是关于信息的信息;它提供可能会见关于另一个信息资源的信息。在多媒体的上下文中,元数据简化了发明的会见数字内容的进程。

各类元数据尺度别离在某些信息规模办理差异的问题。Dublin Core元数据尺度被开拓来提供一个描写文档,象HTML文档、PDF文件和图像这样的资源的尺度要领。它已经被扩展,此刻库、档案和联机内容的刊行者利用Dublin Core作为一种通用的元数据尺度。

Dublin Core尺度描写了合用于在很宽的资源范畴内的描写性元素的小荟萃。这些元素包罗象标题、建设者、主题、日期、名目和语言等属性。纵然还没有元数据表达机制被普遍接管,可是Dublin Core项目已经回收了资源描写框架( RDF)。RDF提供了一个描写和互换元数据的要领。这那些框架支持元数据与支持用于语义、语法和布局的尺度协定机制的互操纵性。RDF不强制用于差异资源描写配合体的语义。取而代之的是,它提供了用于这些集体来按照需要界说新的元数据元素的要领。RDF凡是利用XML作为一种元数据互换和处理惩罚的机制。XML的利用促进了元数据元素荟萃之间的互操纵性,以及在完全差异的集体之间的扩展名和元数据的再利用。另外,RDF简化了词汇的宣布,不只能使词汇被人阅读并且可以很容易地被应用措施处理惩罚。

列表1:

<?xml version='1.0'?>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/
02/22-rdf-syntax-ns#'
xmlns:rdfs= 'http://www.w3.org/2000/01/
rdf-schema#'
xmlns:hp='http://www.hpmiddleware.com/xml/
namespaces/metadata-java-1.0#'>
<rdf:Property rdf:about="http://
www.hpmiddleware.com/rdf/maiden/1.0#name">
<rdfs:isDefinedBy rdf:resource="http://
www.hpmiddleware.com/rdf/maiden/1.0#" />
<hp:datatype>java.lang.String</hp:datatype>
</rdf:Property>
<rdf:Property rdf:about="http://
www.hpmiddleware.com/rdf/maiden/1.0#title">
<rdfs:isDefinedBy rdf:resource="http://
www.hpmiddleware.com/rdf/maiden/1.0#" />
<hp:datatype>java.lang.String</hp:datatype>
</rdf:Property>
</rdf:RDF>

列表1是描写两个元数据属性的RDF文档示例:name和title。<rdf:Property>节点界说了元数据资源。rdf:about属性标识了元数据资源。(你老是通过一个URI描写一种资源。)<rdfs:isDefinedBy>元素指出界说了相关元数据资源的资源。这两个元素配合描写了元数据资源的语义。在列表1中?maiden/1.0#域名空间界说了name元数据属性。<hp:datatype>元素界说了元数据资源的当地Java范例。在列表1中,name元数据资源的当地Java范例是java.lang.String。

很多容器模子已经被提出来用于会见各类大概存在的用于描写日益差异的资源的元数据荟萃。这样一个提议是Warwick Framework。Warwick Framework提出了一个容器体系机构的观念模子,在个中你可以陈设多个元数据荟萃,譬喻你已经习惯于用于建设企业应用措施来利用地现有的应用措施组件。这个框架的特定实现必需提供一个用于处理惩罚容器和它的元数据包的实际要领。

J2EE建树多媒体解决软件治理方案

图2、实现Warwick Framework容器

#p#副标题#e#

图2显示了Warwick Framework容器的典范的Java实现。这个框架利用了一种普通的要领描写了元数据荟萃中的属性之间的干系,这样你就可以陈设你可以在差异平台上实现的差异容器的描写。另外,你利用一种当地范例绑定描写(出格是对付一种措施设计语言)来生成实现绑定的代码。一个存储绑定答允在多个元数据荟萃中的属性来映射到存储的单一值(canonical属性)。存储绑定的一部门界说了所需的代码转换来转换存储中编码的属性值为用于指定的元数据荟萃的固有的编码。

#p#分页标题#e#

一个客户应用措施利用Warwick Framework实现来挪用容器本身、生存属性值的工具和陈设到容器上的任何元数据荟萃。一个Java名称和目次接口( JNDI)查找可以获获得容器的引用。一个设置的存储驱动措施打点属性值的一连性。一个初级的存储层提供了元数据属性的本体范例绑定。面向客户端的元数据荟萃应用编程接口不只利用符合的当地范例并且利用用于元数据荟萃的符合的编码来通报属性值。

列表2:

package metadataset;
import com.hp.mw.richmedia.metadata.*;
import com.hp.mw.richmedia.metadata.spi.TranscodingMetadataProperty;
public interface MaidenAppSample extends
 com.hp.mw.richmedia.metadata.MetadataSet {
  public static final TranscodingMetadataProperty
   NAME_METADATA_PROPERTY =
    new TranscodingMetadataProperty("http://www.hpmiddleware.com/rdf/maiden/1.0#name" );
  public static final TranscodingMetadataProperty
   TITLE_METADATA_PROPERTY =
    new TranscodingMetadataProperty("http://www.hpmiddleware.com/rdf/maiden/1.0#title" );
  public void addName( java.lang.String name ) throws MetadataException;
  public PropertyValueCollection getNameCollection() throws MetadataException;
  public void setName( java.lang.String name ) throws CardinalityConstraintException,
MetadataException;
 public java.lang.String getFirstName() throws MetadataException;
 public void addTitle( java.lang.String title ) throws MetadataException;
 public PropertyValueCollection getTitleCollection() throws MetadataException;
 public void setTitle( java.lang.String title ) throws CardinalityConstraintException,
MetadataException;
 public java.lang.String getFirstTitle() throws MetadataException;
}

列表2说明白一个Warwick Framework生成的面向客户端的应用编程接口的示例。列表3中的JSP代码说明白你如何通过JNDI查找、检索元数据荟萃工具和查询用于name元数据属性的值的工具来会见Warwick Framework。

列表3:

<%@ page ?>
<% Hashtable env = new Hashtable();
env.put( Context.URL_PKG_PREFIXES,
"com.hp.mw.richmedia" );
InitialContext ctx = new InitialContext( env );
MetadataContainer container =
( MetadataContainer ) ctx.lookup(
"metadata:/metadata-container.xml" );
MetadataQuery query = container.createQuery(
new URIQuerySpec( "http://
www.hpmiddleware.com/maiden/1.0/
testresource" ) );
Collection c = container.query( query );
Iterator itor = c.iterator();
MetaObject mo = ( MetaObject ) itor.next();
MaidenAppSample sampleMetadataSet =
( MaidenAppSample )
container.getMetadataSet( mo,
"http://www.hpmiddleware.com/rdf/
maidenapp/sample/1.0#" );
PropertyValueCollection pvc =
sampleMetadataSet.getNameCollection();
out.println( "<br><h3>Values for the name
property?</h3><br>" );
itor = pvc.iterator();
while ( itor.hasNext() )
out.println( ( String ) itor.next() + "<br>" );
%>

#p#副标题#e#

我已经细节说明的存储组件和元数据组件简化了基于尺度、多媒体加强的应用措施的建设。这些组件提供了利用你熟悉J2EE开拓机制来存储、查询和检索多媒体元素的本领。因此,你不只可以把现有的和新的J2EE应用措施中的上下文的多媒体内容提供应最终用户,并且可以操作这个平台来建设支持新媒体组件的生成的应用措施。

譬喻,你可以通过荟萃媒体组件到同步多媒体集成语言( Synchronized Multimedia Integration Language,SMIL)来组装一个促进媒体表示得交互建设的基于Web的应用措施。( SMIL是一个提供按照时间线打算音频、视频、文本和图形文件的标注语言。)另一个例子是一个简化提取、审查和最终宣布多媒体内容的派别。这两个应用措施可以通过操作尺度J2EE组件,譬喻JSP、servlets和Enterprise Java Beans来在多媒体生命周期中确定要害阶段。

J2EE建树多媒体解决软件治理方案

图⒊EMB组件和从属物

除了操作现有的组件之外,Java开拓者集体还在摸索如何扩揭示有的Java平台的范畴来在多媒体资源生成中接受一个更重要的脚色。JCP的很多创新能办理现有的Java平台中的一些多媒体处理惩罚的不敷。

Enterprise Media Bean

#p#分页标题#e#

Enterprise Media Bean ( EMB) Java类型请求办理了多媒体数据的操纵和应用。EMB类型事情推出了一个基于组件的体系机构,用于把多媒体数据无缝集成到基于J2EE措施设计模子的应用措施中。(拜见图3)。这个类型提出了两个组件范例。第一个组件Media Foundation Bean提供了一些根基的处事(好比头标的提取)来提供一个尺度和轻量级要领来在J2EE应用措施中包括根基的多媒体相关特性。相反,第二组件Media Entity Bean依靠EJB实体bean而且因此用于基于EJB体系布局的应用措施。这些Media Entity Bean根基上是耐久的、长途的和易变的模子数据的实体bean。因此,它们扩展了尺度EJB事务和安详模子到媒体数据中,提供了一个处事器端协议处理惩罚措施(譬喻流处事器)的抽象。

另外,JCP调察会见内容存储的尺度要领。此刻,客户应用措施必需利用一个供给商的专有的应用编程接口来与特定的内容容器彼此浸染。Content Repository for Java Technology应用编程接口将会合于事务读/写会见二进制内容(流操纵)、文本内容、全文搜索、过滤、监督、版本节制和处理惩罚布局化内容。

除现有的JCP创新来扩展J2EE平台之外,增补的扩展被要求答允平台在建设多媒体数据的进程中接受更根基的脚色。为了J2EE应用措施可以或许参加图像处理惩罚,应该界说帮助容器,答允陈设的组件会见当前不行用于EJBs可能servlets的东西。譬喻,图像进程组件需要大量发生多线程的本领来处理惩罚各类并发数据流,而且最终归并功效。一个答允建设这种范例处理惩罚组的容器将答允J2EE平台来在多媒体规模中饰演一个更重要的脚色。

开拓者此刻有与他们此刻整合数据库和以前遗留信息所利用的大抵沟通的方法来寻找和包括多媒体资源的选择。因为这些技能已经成熟而且尺度化,用于提高J2EE应用措施利用者的用户履历的潜在本领极大加强。Java集体和中间件供给商必需操作这些潜在本领使J2EE平台成为一个对付更有分辨本领的用户市场来说更可行的选择。

    关键字:

在线提交作业