目前主流的分布式数据库系统实现方案有哪些?
(1)方案一(数据库保存所有服务器索引信息) 全对称结构,没有中央服务器 web方案: 只从本地数据库检索符合条件的记录,给出结果 每次检索都要从本地服务器的海量数据中进行 数据库方案: 数据库保存所有服务器的索引内容 缓存命中率高的记录,减少检索时间 服务器负载分析: 服务器负载假设: 一百个结点,每结点一百人同时使用,每个结点一万条记录 web服务器:同时一百线程在本地数据库服务器检索 数据库服务器:每次接收一百个查询请求;每个请求要从一百万条索引中检索(最坏的情况);缓冲机制可以稍微减轻负担 数据更新操作: 同时更新所有数据库/只更新本地,服务器间相互同步 方案二(数据库保存本地索引及少量缓冲) 每高校作为一个结点 所有结点全对称结构,网络中没有一个中央服务器 web方案: 接收到请求时同时多线程向其它服务器同时搜索(服务器压力问题?) 数据库方案: 数据库保存本地数据 数据库保存一定量缓冲数据, 服务器负载分析: 服务器负载假设: 一百个结点,每结点一百人同时使用 则每个web服务器同时发起一万个线程向其它数据服务器搜索(oops!) 每个数据库服务器会同时接收到一万个查询请求(oops!) 采用学习过程只能少量减少查询请求和web服务器搜索线程 数据更新操作: 只更新本地 方案三(中央服务器方案一) 每高校一个结点 每结点结构相同,连接到同一个中央服务器 web方案 每个查询向中央服务器进行,由中央服务器实行检索,中央服务器返回检索结果 数据库方案 中央数据库保存所有索引信息 每结点可以只用小型数据库保存本地用户和其它信息即可 服务器负载分析: 服务器负载假设: 一百个结点,每结点一百人同时使用,每结点资料记录一万条 web服务器:同时发起一百个进程向中央数据库查询 数据库服务器(中央):同时接收一万条查询请求并返回大容量结果 数据库服务器(结点):少量工作 数据更新操作: 只更新中央服务器 方案四(中央服务器方案二) 每高校一个结点 每结点结构相同,连接到同一中央服务器 web方案: 每个查询向中央服务器进行,由中央服务器根据查询内容进行转发到结点数据库,再由结点数据库返回结果 数据库方案: 中央服务器保存各结点分类信息,根据页面请求的分类转发查询到相应服务器 服务器负载分析: 服务器负载假设: 一百个结点,每结点一百人同时使用,每结点资料记录一万条,每结点一百个类别 web服务器:同时一百个进程向中央数据库查询 数据库服务器(中央):同时接收一万条请求并转发 数据库服务器(结点):从中央服务器接收查询请求,最坏情况下每结点接收到一万条查询请求 数据更新操作: 只更新本地服务器 分类变化时更新中央服务器
MID 是什么公司?
MID是个很大的含义,很多公司产品都涉及到它。
首先,MID,即Mobile Internet Device,移动互联网设备,它是在2008年IDF大会上英特尔推出的一种新概念迷你笔记本电脑。在英特尔的定义中,这是一种体积小于笔记电脑,但大于手机的移动互联网装置。MID与UMPC类似,同样为便于携带的移动PC产品,通过MID,用户可进入互联网,随时享受娱乐、进行信息查询、邮件收发等操作。
使用行业:
第一是车载市场,包括多媒体功能、智能导航功能、无线通信功能等等,这是普通GPS设备所不能实现的。
第二是B2C、C2C电子商务市场。
第三是证券投资者,需要实时的了解当前的证券行情及帐户买卖操作,也只有MID能实现最佳的性能满足。
第四就是带版权的数字媒体传播,例如中小学的电子课件。
java方面主流的技术有哪些
Structs hibernate spring Struts
Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。
Struts框架可分为以下四个主要部分,其中三个就和MVC模式紧密相关:
1、模型(Model),本质上来说在Struts中Model是一个Action类(这个会在后面详细讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器(Controller)向Action的转发过程是基于由struts-config.xml文件描述的配置信息的。
2、视图(View),View是由与控制器Servlet配合工作的一整套JSP定制标签库构成,利用她们我们可以快速建立应用系统的界面。
3、控制器(Controller),本质上是一个Servlet,将客户端请求转发到相应的Action类。
4、一堆用来做XML文件解析的工具包,Struts是用XML来描述如何自动产生一些JavaBean的属性的,此外Struts还利用XML来描述在国际化应用中的用户提示信息的(这样一来就实现了应用系统的多语言支持)。
Spring
Spring是轻量级的J2EE应用程序框架。
Spring的核心是个轻量级容器(container),实现了IoC(Inversion of Control)模式的容器,Spring的目标是实现一个全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框架方案加以替代,Spring希望提供one-stop shop的框架整合方案 。
Spring不会特别去提出一些子框架来与现有的OpenSource框架竞争,除非它觉得所提出的框架够新够好,例如Spring有自己的 MVC框架方案,因为它觉得现有的MVC方案有很多可以改进的地方,但它不强迫您使用它提供的方案,您可以选用您所希望的框架来取代其子框架,例如您仍可以在Spring中整合您的Struts框架 。
Spring的核心概念是IoC,IoC的抽象概念是「依赖关系的转移」,像是「高层模组不应该依赖低层模组,而是模组都必须依赖于抽象」是 IoC的一种表现,「实现必须依赖抽象,而不是抽象依赖实现」也是IoC的一种表现,「应用程序不应依赖于容器,而是容器服务于应用程序」也是IoC的一种表现。
Spring的架构性的好处
Spring能有效地组织你的中间层对象,无论你是否选择使用了EJB。如果你仅仅使用了Struts或其他的包含了J2EE特有APIs的framework,你会发现Spring关注了遗留下的问题。
. Spring能消除在许多工程上对Singleton的过多使用。根据我的经验,这是一个主要的问题,它减少了系统的可测试性和面向对象特性。
Spring 能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读Javadoc乃至源编码吗?有了Spring,你可很简单地看到类的JavaBean属性。倒置控制的使用(在下面讨论)帮助完成这种简化。Spring能通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。
. Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。
. 使用Spring构建的应用程序易于单元测试。
. Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。
. Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适于许多web应用。例如,Spring能使用AOP提供声明性事务而不通过使用EJB容器,如果你仅仅需要与单个的数据库打交道,甚至不需要JTA实现。
. Spring为数据存取提供了一致的框架,不论是使用JDBC或O/R mapping产品(如Hibernate)。
Spring确实使你能通过最简单可行的解决办法解决你的问题。这些特性是有很大价值的。
Spring能做什么?
Spring提供许多功能,在此我将快速地依次展示其各个主要方面。
任务描述:
首先,让我们明确Spring范围。尽管Spring覆盖了许多方面,但我们已经有清楚的概念,它什么应该涉及和什么不应该涉及。
Spring的主要目的是使J2EE易用和促进好编程习惯。
Spring 不重新开发已有的东西。因此,在Spring中你将发现没有日志记录的包,没有连接池,没有分布事务调度。这些均有开源项目提供(例如 Commons Logging 用来做所有的日志输出,或Commons DBCP用来作数据连接池),或由你的应用程序服务器提供。因为同样的的原因,我们没有提供O/R mapping层,对此,已有有好的解决办法如Hibernate和JDO。
Spring的目标是使已存在的技术更加易用。例如,尽管我们没有底层事务协调处理,但我们提供了一个抽象层覆盖了JTA或任何其他的事务策略。
Spring没有直接和其他的开源项目竞争,除非我们感到我们能提供新的一些东西。例如,象许多开发人员,我们从来没有为Struts高兴过,并且感到在MVC web framework中还有改进的余地。在某些领域,例如轻量级的 IoC容器和AOP框架,Spring有直接的竞争,但是在这些领域还没有已经较为流行的解决方案。(Spring在这些区域是开路先锋。)
Spring也得益于内在的一致性。
所有的开发者都在唱同样的的赞歌,基础想法依然是Expert One-on-One J2EE设计与开发的那些。
并且我们已经能够使用一些主要的概念,例如倒置控制,来处理多个领域。
Spring在应用服务器之间是可移植的。
当然保证可移植性总是一次挑战,但是我们避免任何特定平台或非标准化,并且支持在WebLogic,Tomcat,Resin,JBoss,WebSphere和其他的应用服务器上的用户。
Spring的核心即是个IoC/DI的容器,它可以帮程序设计人员完成组件之间的依赖关系注入,使得组件之间的依赖达到最小,进而提高组件的重用性,Spring是个低侵入性(invasive)的框架,Spring中的组件并不会意识到它正置身于Spring中,这使得组件可以轻易的从框架中脱离,而几乎不用任何的修改,反过来说,组件也可以简单的方式加入至框架中,使得组件甚至框架的整合变得容易。
Spring最为人重视的另一方面是支持AOP(Aspect-Oriented Programming),然而AOP框架只是Spring支持的一个子框架,说Spring框架是AOP框架并不是一件适当的描述,人们对于新奇的 AOP关注映射至Spring上,使得人们对于Spring的关注集中在它的AOP框架上,虽然有所误解,但也突显了Spring的另一个令人关注的特色。
Spring也提供MVC Web框架的解决方案,但您也可以将自己所熟悉的MVC Web框架与Spring解合,像是Struts、Webwork等等,都可以与Spring整合而成为进用于自己的解决方案。Spring也提供其它方面的整合,像是持久层的整合如JDBC、O/R Mapping工具(Hibernate、iBATIS)、事务处理等等,Spring作了对多方面整合的努力,故说Spring是个全方位的应用程序框架。
AJAX
AJAX
全称“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它有机地包含了以下几种技术:基于web标准(standards-based presentation)XHTML+CSS的表示; 使用 DOM(Document Object Model)进行动态显示及交互; 使用 XML 和 XSLT 进行数据交换及相关操作; 使用 XMLHttpRequest 进行异步数据查询、检索;使用 JavaScript 将所有的东西绑定在一起。
类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。
ajax优势
传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然后返回一个新的网页。这个做法浪费了许多带宽,因为在前后两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。
Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使得Java程序员可以使用对象编程思维来操纵数据库。Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化。它还可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用
Hibernate不会对您造成妨碍,也不会强迫您修改对象的行为方式。它们不需要实现任何不可思议的接口以便能够持续存在。惟一需要做的就是创建一份XML“映射文档”,告诉Hibernate您希望能够保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后就可以要求它以对象的形式获取数据,或者把对象保存为数据。与其他解决方案相比,它几乎已经很完美了。
运行时,Hibernate读取映射文档,然后动态构建Java类,以便管理数据库与Java之间的转换。在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要修改这些对象,(一般情况下)只需在程序中与它们进行交互,然后告诉Hibernate保存修改即可。类似地,创建新对象也很简单;只需以常规方式创建它们,然后告诉Hibernate有关它们的信息,这样就能在数据库中保存它们。
Hibernate API学习起来很简单,而且它与程序流的交互相当自然。在适当的位置调用它,就可以达成目的。它带来了很多自动化和代码节省方面的好处,所以花一点时间学习它是值得的。而且还可以获得另一个好处,即代码不用关心要使用的数据库种类(否则的话甚至必须知道)。我所在的公司就曾有过在开发过程后期被迫更换数据库厂商的经历。这会造成巨大的灾难,但是借助于Hibernate,只需要简单地修改Hibernate配置文件即可。
这里的讨论假定您已经通过创建Hibernate映射文档,建立了一个关系数据库,并且拥有要映射的Java类。有一个Hibernate“工具集”可在编译时使用,以支持不同的工作流。例如,如果您已经拥有Java类和映射文档,Hibernate可以为您创建(或更新)必需的数据库表。或者,仅仅从映射文档开始,Hibernate也能够生成数据类。或者,它可以反向设计您的数据库和类,从而拟定映射文档。还有一些用于Eclipse的alpha 插件,它们可以在IDE中提供智能的编辑支持以及对这些工具的图形访问。
如果您使用的是Hibernate 2环境,这些工具鲜有提供,但是存在可用的第三方工具。
使用Hibernate的场合
既然Hibernate看起来如此灵活好用,为什么还要使用其他的工具呢?下面有一些场景,可以帮助您做出判断(或许通过提供一些比较和上下文,可以有助于鉴别非常适用Hibernate的场合)。
如果应用对于数据存储的需要十分简单——例如,您只想管理一组用户优先选择——您根本不需要数据库,更不用说一个优秀的对象-关系映射系统了(即使它也如Hibernate这般易于使用)!从Java 1.4开始,有一个标准的Java Preferences API可以很好地发挥这个作用。(在ONJava文章中可以找到有关Preferences API的更多信息。)
对于熟悉使用关系数据库和了解如何执行完美的SQL查询与企业数据库交互的人来说,Hibernate似乎有些碍手碍脚,这就像带有动力和自动排挡的快艇车会使注重性能的赛车驾驶员不耐烦一样。如果您属于这种人,如果您所在的项目团队拥有一个强大的DBA,或者有一些存储过程要处理,您可能想研究一下iBATIS。Hibernate的创建者本身就把iBATIS当作是另一种有趣的选择。我对它很有兴趣,因为我们曾为一个电子商务站点开发了一个类似的系统(其功能更为强大),而且从那时到现在,我们已经在其他环境中使用过它,尽管在发现Hibernate之后,在新项目中我们通常更喜欢使用Hibernate。您可以认为,以SQL为中心的解决方案(比如iBATIS)是“反向的”对象/关系映射工具,而Hibernate是一个更为传统的ORM。
当然,还有其他的外部原因会导致采用另外的方法。比如,在一个企业环境中,必须使用成熟的EJB架构(或者其他的一些非普通对象映射系统)。可以为提供自己的数据存储工具的平台量身定做代码,比如Mac OS X's Core Data。使用的可能是像XML DTD这样的存储规范,而它根本不涉及关系数据库。
关于平板电脑(MID)的硬件问题 纯手打高手请进!
两点:1.国产全志A10,采用基于ARMv7指令集的ARM Cortex-A8核心,这个A10和通常提到的A8.A9核不是一个概念,只是起了个A10的名字(就像苹果iph4和ipad的A4、A5核一样,只是个名字)忽悠人(山寨惯用手段),目前ARM没有A10这种内核。集成了CPU+GPU+VPU+VE(宣称是“多核”,这种集成并不说明其先进),号称频率1.5GHz,应该是这几个部分频率的总和,CPU实际频率应该不大于1GHz,GPU部分是mali-400,和晶晨AML8726-M的gpu相同。综合性能一般。 全志A10的方案另一个噱头就是能播放2160P视频了,姑且不论能不能达到,目前2160P的片源基本找不到,就是找到了因为目前平板甚至电视的分辨率的限制也发挥不出来,没有实际意义。而国内芯片设计功底与国外大厂差距巨大,可以断言这个A10在平板电脑的A8处理器中属于中下水平,甚至不如rk2918。依靠性价比打市场。2.跑分不能代表一切,关键是平衡,拿苹果、thinkpad电脑硬件做例子就知道,各项指标都没有别人的好,为什么人家的东西就是过硬,经用、耐用、实用(我说的是长期后实用还不会减性能啊)
关于平板电脑(MID)的硬件问题 纯手打高手请进!
两点:
1.国产全志A10,采用基于ARMv7指令集的ARM
Cortex-A8核心,这个A10和通常提到的A8.A9核不是一个概念,只是起了个A10的名字(就像苹果iph4和ipad的A4、A5核一样,只是个名字)忽悠人(山寨惯用手段),目前ARM没有A10这种内核。集成了CPU+GPU+VPU+VE(宣称是“多核”,这种集成并不说明其先进),号称频率1.5GHz,应该是这几个部分频率的总和,CPU实际频率应该不大于1GHz,GPU部分是mali-400,和晶晨AML8726-M的gpu相同。综合性能一般。
全志A10的方案另一个噱头就是能播放2160P视频了,姑且不论能不能达到,目前2160P的片源基本找不到,就是找到了因为目前平板甚至电视的分辨率的限制也发挥不出来,没有实际意义。而国内芯片设计功底与国外大厂差距巨大,可以断言这个A10在平板电脑的A8处理器中属于中下水平,甚至不如rk2918。依靠性价比打市场。
2.跑分不能代表一切,关键是平衡,拿苹果、thinkpad电脑硬件做例子就知道,各项指标都没有别人的好,为什么人家的东西就是过硬,经用、耐用、实用(我说的是长期后实用还不会减性能啊)
方案公司是做什么的
策划公司(Planning company),广告策划、营销策划、地产策划等策划企业的统称。策划始于20世纪90年代,兴盛于21世纪初。策划公司主要侧重企业的品牌包装和推广,以及企业的大型活动的起草、组织、实施等过程的全面执行。扩展资料:策划定位1、地位定位企业可以根据自身在行业中的地位来对自己的品牌进行定位。如果企业的生产实力、品牌影响力都已在行业中具有极大优势,有可能成为行业领导品牌,便可采取霸位策略,占据行业第一品牌的地位。2、利益定位企业也可以根据它的产品所能给消费者带来的利益,来为品牌做定位。比如你是生产汽车的,你的产品在安全系统上做得很到位,出类拔萃,有几大功能来保障汽车驾驶过程中的安全性和稳定性,那你就可以将“安全第一”作为你的定位,对消费者承诺你的产品会带给他们最大的安全。3、对象定位品牌定位还可以根据消费者对象来进行划分。比如专门为儿童生产的牙膏,或者专门为设计师制造的电脑。因为这些产品专业为特定的人群而生产,自然更加能够满足他们的需求,所以很可以将自己定位为“儿童牙膏第一品牌”、或“设计师的电脑专家”等等。参考资料来源:百度百科-策划公司
方案公司是什么意思
策划公司(Planning company),广告策划、营销策划、地产策划等策划企业的统称。策划始于20世纪90年代,兴盛于21世纪初。策划公司主要侧重企业的品牌包装和推广,以及企业的大型活动的起草、组织、实施等过程的全面执行。扩展资料:策划定位1、地位定位企业可以根据自身在行业中的地位来对自己的品牌进行定位。如果企业的生产实力、品牌影响力都已在行业中具有极大优势,有可能成为行业领导品牌,便可采取霸位策略,占据行业第一品牌的地位。2、利益定位企业也可以根据它的产品所能给消费者带来的利益,来为品牌做定位。比如你是生产汽车的,你的产品在安全系统上做得很到位,出类拔萃,有几大功能来保障汽车驾驶过程中的安全性和稳定性,那你就可以将“安全第一”作为你的定位,对消费者承诺你的产品会带给他们最大的安全。3、对象定位品牌定位还可以根据消费者对象来进行划分。比如专门为儿童生产的牙膏,或者专门为设计师制造的电脑。因为这些产品专业为特定的人群而生产,自然更加能够满足他们的需求,所以很可以将自己定位为“儿童牙膏第一品牌”、或“设计师的电脑专家”等等。参考资料来源:百度百科-策划公司
mid什么意思
1、adj. 中间的; [语]央元音的2、prep. 在 ... 的中间3、abbr. 移动互联网设备 (=Mobile Internet Device)读音:英[ˌemaɪ'diː]、美[ˌemaɪ'diː] 举例:MID Converter includes a built-in sequencer engine.中间的转换器包括一台固定的音序器引擎。 近义词medial读音:英['miːdiəl]、美['miːdiəl] 意思:adj. 中间的;内侧的;平均的;普通的举例:The heart is medial to the lungs.心脏在两肺的中间。
MID-是啥意思
分类: 电脑/网络
问题描述:
可能是指电脑音乐合成方面的技术,因此叫不准。
解析:
MID是midi的简称,是它的扩展名。
一、MIDI是什么?
MIDI是英语Music Instrument Digital Interface 的缩写,翻译过来就是“数字化乐器接口”,也就是说它的真正涵义是一个供不同设备进行信号传输的接口的名称。我们如今的MIDI音乐制作全都要靠这个接口,在这个接口之间传送的信息也就叫MIDI信息。 MIDI最早是应用在电子合成器——一种用键盘演奏的电子乐器上, 由于早期的电子合成器的技术规范不统一,不同的合成器的链接很困难,在1983年8月,YAMAHA、ROLAND、KAWAI等著名的电子乐器制造厂商联合指定了统一的数字化乐器接口规范,这就是MIDI1.0技术规范。此后,各种电子合成器已经电子琴等电子乐器都采用了这个统一的规范,这样,各种电子乐器就可以互相链接起来,传达MIDI信息,形成一个真正的合成音乐演奏系统。
由于多媒体计算机技术的迅速发展,计算机对数字信号的强大的处理能力,使得计算机处理MIDI信息成为顺理成章的事情了,所以,现在不少人把MIDI音乐称之为电脑音乐。事实上,利用多媒体计算机不但可以播放、创作和实时地演奏MIDI音乐。甚至可以把MIDI音乐转变成看的见的乐谱(五线谱或简谱)打印出来,反之,也可以把乐谱变成美妙的音乐。利用MIDI的这个性质,可以用于音乐教学(尤其是识谱),让学生利用计算机学习音乐知识和创作音乐。
二、MIDI文件的性质
所谓MIDI文件实质上是指计算机中记录的MIDI信息的数据,MID文件的扩展名是*.mid。它和另外一种计算机中常用的声音波形文件(*.wav文件)有什么不同呢?表面上,两种文件都可以产生声响效果或音乐,但它们的本质是完全不同的。普通的声音文件(*.wav文件)是计算机直接把声音信号的模拟信号经过取样——量化处理,变成与声音波形对应的数字信号,记录在计算机的储存介质(硬盘或光盘)中。通常,声音文件都比较大,如记录一分钟的声音(立体声、CD音质),大概需要10.5M的储存空间。一首几分钟的歌曲需要几十兆的硬盘,一张CD光盘只能容纳十来首歌曲。为了减少声音文件储存的空间,近年来在计算机技术上采用了压缩技术,把声音文件经过处理,在不太影像播放质量的前提下,把文件的大小压缩到原来的10~12分之一,这就是近年流行的MP3文件格式。而MIDI文件则不是直接记录乐器的发音,而是记录了演奏乐器的各种信息或指令,如用哪一种乐器,什么时候按某个键,力度怎么样等等,至于播放时发出的声音,那是通过播放软件或者音源的转换而成的。因此MIDI文件通常比声音文件小得多,一首乐曲,只有十几K或几十K,只有声音文件的千分之一左右,便于储存和携带。
三、关于MIDI软件
MIDI软件有多种类型,有MIDI播放软件、演奏软件和创作软件几类。通常,大多数的媒体播放器都可以播放MIDI音乐,如WINDOWS95的媒体播放器(Windows Media Player)就可以播放MIDI,而且通常是系统的默认播放器,这类播放器在使用中不能对MIDI音乐的参数进行调节。除了媒体播放器以外,MIDI演奏软件和创作软件都可以作为MIDI的播放器使用,这些软件在播放MIDI音乐时,还可以选择不同的音源(波表)播放方式,以获得最佳的播放效果,而且还可以改变MIDI的参数产生出新的播放效果,如改变播放速度、改变乐器音色(如把钢琴演奏曲变成小提琴演奏)、升降调等,大部分软件还可以显示MIDI音乐所对应的乐谱(五线谱或简谱)甚至歌词内容等信息,还可以把乐谱打印出来。