来自 广播 2019-12-29 02:21 的文章
当前位置: AG真人游戏平台 > 广播 > 正文

唯其如此硬着头皮,AMQP的原本用处只是为金融界提供叁个足以互相合作的信息公约

rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。他遵循Mozilla Public License开源协议。采用 Erlang 实现的工业级的消息队列(MQ)服务器。

【写在前面的话】

我们作为写作者,很多人都非常关心自己的权益。

尽管我们大多数朋友,目前不一定能以文字为生,以创作为主要职业,但我们都不愿意自己的 合法权益被侵犯。

同时,由于最近,我开始踏入版权经纪人行业,为了更好地开展自己的业务,我觉得有必要努力学习相关知识。

我自己试图用个人理解,结合实际案例,来自学和解读一下《中华人民共和国著作权法》。

由于我不是专业人士,见识也有限,只能尽力而为。

如果有误读,请懂行的朋友一定帮忙指正,以免误导大众,谢谢。

定义

观察者模式(Observer Pattern):定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新

现实世界的模式

比如某些用户订阅了周刊,每次周刊发布的时候都会送到用户手上

比如高考的时候,发送广播通知考试结束,考生都要停笔,教师需要收卷

比如打仗的时候,指挥官发命令,战场上的士兵跟军命令决定进攻、撤退、驻守

有这几种类型

  • 发布-订阅模式
  • 模型-视图模式
  • 源-监听模式
  • 从属者模式

     RabbitMQ的官方站:
       AMQP(高级消息队列协议) 是一个异步消息传递所使用的应用层协议规范,作为线路层协议,而不是API(例如JMS),AMQP 客户端能够无视消息的来源任意发送和接受信息。AMQP的原始用途只是为金融界提供一个可以彼此协作的消息协议,而现在的目标则是为通用消息队列架构提供通用构建工具。因此,面向消息的中间件 (MOM)系统,例如发布/订阅队列,没有作为基本元素实现。反而通过发送简化的AMQ实体,用户被赋予了构建例如这些实体的能力。这些实体也是规范的一 部分,形成了在线路层协议顶端的一个层级:AMQP模型。这个模型统一了消息模式,诸如之前提到的发布/订阅,队列,事务以及流数据,并且添加了额外的特性,例如更易于扩展,基于内容的路由。

《著作权法》第五十七条:本法所称的著作权即版权。


为了方便,我在下文,不再区别著作权和版权两个概念,而是视为一个概念。行文中两个词都随机使用。

由“copyright protection”合抱成一个绿色地球,中间由两个绿色人儿双手相握成一个盾牌守护我们的版权。 保护版权是对个人对知识的尊重,需要大家共同携手。绿色代表希望,保护版权如同守护我们共同唯一的地球。

简单设计

目标

被观察的对象,内置抽象观察者集合,定义增加、删除、通知抽象观察者的方法。目标类可以是抽象的也可以是具体的。如果有具体的抽象业务要实现,还可以分出目标子类

抽象观察者

声明了更新数据的方法,由目标调用

具体观察者

实现了抽象观察者的更新数据的方法

如果需要目标的一些状态或者数据状态,可能还维持着对目标的引用

图片 1

观察者模式-类图.png

可以应用在一对多的通信上。同时,目标和观察者没有太强的依赖和关联,增加或者减少观察者,不会对目标造成影响

AMQP当中有四个概念非常重要

中华人民共和国著作权法

应用实例

  1. virtual host,虚拟主机
  2. exchange,交换机
  3. queue,队列
  4. binding,绑定

全国人民代表大会常务委员会

中华人民共和国主席令(第二十六号)

《全国人民代表大会常务委员会关于修改<中华人民共和国著作权法>的决定》已由中华人民共和国第十一届全国人民代表大会常务委员会第十三次会议于2010年2月26日通过,现予公布,自2010年4月1日起施行。

中华人民共和国主席 胡锦涛

2010年2月26日

中华人民共和国著作权法(1990年9月7日第七届全国人民代表大会常务委员会第十五次会议通过 根据2001年10月27日第九届全国人民代表大会常务委员会第二十四次会议《关于修改〈中华人民共和国著作权法〉的决定》第一次修正 根据2010年2月26日第十一届全国人民代表大会常务委员会第十三次会议《关于修改〈中华人民共和国著作权法〉的决定》第二次修正)

HTTP DNS 解析性能监控

有这么一个场景,我们的应用接入了 HTTP DNS,接管了某些接口请求的 DNS 解析。现在某些有统计上报接口,在某些地方,需要 DNS 解析的一些信息,比如解析到的 IP,解析耗时,解析使用的域名服务器地址

我们可以使用观察者来解决这个问题

建立一个监控器,内置观察者队列,并提供方法来添加、删除观察者

当 DNS 每次发起一次解析,把数据统计后,交给监控器。然后监控通知所有观察者拿数据

定义目标类 DnsMonitor

public class DnsMonitor {

    private final List<MonitorWatcher> mWatcherList;

    public DnsMonitor() {
        mWatcherList = new CopyOnWriteArrayList<>();
    }

    @Override
    public void onParseResult(ResolveData data) {
        if (data == null || TextUtils.isEmpty(data.host)) {
            return;
        }

        // 通知观察者们,有解析数据了
        for (MonitorWatcher watcher : mWatcherList) {
            watcher.notifyResolveData(data);
        }
    }

    /**
     * 注册监视者
     */
    public void registerWatcher(MonitorWatcher watcher) {
        mWatcherList.add(watcher);
    }

    /**
     * 注销监视者
     */
    public void unregisterWatcher(MonitorWatcher watcher) {
        mWatcherList.remove(watcher);
    }
}

定义观察者

public interface MonitorWatcher {
    /**
     * 通知获取到的解析数据
     */
    void notifyResolveData(ResolveData data);
}

然后,我们的所有 DNS 解析器,在解析到结果后,调用的 onParseResult 把数据发出去

可以把 Monitor 做成单例,或者放到单例内,这样就可以整个进程都可以访问。所有的观察者们,只需要实现 MonitorWatcher,然后等着数据通知过来

实际上这个功能还有很多细节,比如如何防止唤醒观察者不阻塞,还有如何让所有解析器使用同一个监视器。因为和这个模式无关,就不列出来了

一个虚拟主机持有一组交换机、队列和绑定。

目  录

ContentObserver

有这么一个需求,我们想要知道数据库某个数据的变化,有一种结局方法,那就是开个工作线程,去轮询访问。这样的做法会导致资源大量消耗

Android 提供的一种方式,称为内容观察者,可以监听数据库变化后会通知出来

比如我们要监听屏幕亮度的变化,并且做一些业务。屏幕亮度变化的数据在系统数据库里,我们可以通过 ContentObserver 很轻松地取出

屏幕亮度对应的 Uri 可以这样获得

Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS)

创建观察者

    private static class ScreenBrightnessObserver extends ContentObserver {

        ScreenBrightnessObserver(@NonNull Handler handler) {
            super(handler);
        }

        @Override
        public void onChange(boolean selfChange) {
            super.onChange(selfChange);

            // 亮度发生变化了,可以查询最新的亮度,然后做相应的业务

        }
    }

然后在页面启动的使用注册

mScreenBrightnessObserver = new ScreenBrightnessObserver(new Handler());
getContentResolver().registerContentObserver(Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS), true, mScreenBrightnessObserver);

在页面销毁的时候注销

getContentResolver().unregisterContentObserver(mScreenBrightnessObserver);

为什么需要多个虚拟主机呢?因为RabbitMQ当中,用户只能在虚拟主机的粒度进行权限控制。因此,如果需要禁止A组访问B组的交换机/队列/绑定,必须为A和B分别创建一个虚拟主机。每一个RabbitMQ服务器都有一个默认的虚拟主机/

第一章 总  则

EventBus

EventBus 也是观察者模式的一种实现

如果我们有多个目标,多个观察者,如果每个目标都去管理观察者列表的话,维护起来很可怕

所以这里又抽象出一个层次,可以理解为消息中心,或者消息总线,内部维护着观察者的列表,目标发生数据变化交给这个消息中心进行消息的分发和调度

图片 2

观察者模式-EventBus.png

EventBus 提供了一个非常强大消息总线,目标发生变化的时候,把要通知的信息封装成一个个消息。把消息通知给订阅该消息的观察者们

可以用 EventBus 在做模块间的通信。把要通知的数据变化封装成事件抛出去。通信的模块没有耦合,发送者不需要知道有哪些接收者。EventBus 会通知到位

何谓虚拟主机(virtual host),交换机(exchange),队列(queue)和绑定(binding)

第二章 著作权

队列(Queues)是你的消息(messages)的终点,可以理解成装消息的容器。消息就一直在里面,直到有客户端(也就是消费者,Consumer)连接到这个队列并且将其取走为止。不过,也可以将一个队列配置成这样的:一旦消息进入这个队列,此消息就被删除。

第一节 著作权人及其权利

队列是由消费者(Consumer)通过程序建立的,不是通过配置文件或者命令行工具。这没什么问题,如果一个消费者试图创建一个已经存在的队列,RabbitMQ会直接忽略这个请求。因此我们可以将消息队列的配置写在应用程序的代码里面。

第二节 著作权归属

而要把一个消息放进队列前,需要有一个交换机(Exchange)。

第三节 权利的保护期

交换机(Exchange)可以理解成具有路由表的路由程序。每个消息都有一个称为路由键(routing key)的属性,就是一个简单的字符串。交换机当中有一系列的绑定(binding),即路由规则(routes)。(例如,指明具有路由键 “X” 的消息要到名为timbuku的队列当中去。)

第四节 权利的限制

消费者程序(Consumer)要负责创建你的交换机。交换机可以存在多个,每个交换机在自己独立的进程当中执行,因此增加多个交换机就是增加多个进程,可以充分利用服务器上的CPU核以便达到更高的效率。例如,在一个8核的服务器上,可以创建5个交换机来用5个核,另外3个核留下来做消息处理。类似的,在RabbitMQ的集群当中,你可以用类似的思路来扩展交换机一边获取更高的吞吐量。

第三章 著作权许可使用和转让合同

交换机如何判断要把消息送到哪个队列?你需要路由规则,即绑定(binding)。一个绑定就是一个类似这样的规则:将交换机“desert(沙漠)”当中具有路由键“阿里巴巴”的消息送到队列“hideout(山洞)”里面去。换句话说,一个绑定就是一个基于路由键将交换机和队列连接起来的路由规则。例如,具有路由键“audit”的消息需要被送到两个队列,“log-forever”和“alert-the-big-dude”。要做到这个,就需要创建两个绑定,每个都连接一个交换机和一个队列,两者都是由“audit”路由键触发。在这种情况下,交换机会复制一份消息并且把它们分别发送到两个队列当中。交换机不过就是一个由绑定构成的路由表。

第四章 出版、表演、录音录像、播放

交换机有多种类型。他们都是做路由的,但是它们接受不同类型的绑定。为什么不创建一种交换机来处理所有类型的路由规则呢?因为每种规则用来做匹配分子的CPU开销是不同的。例如,一个“topic”类型的交换机试图将消息的路由键与类似“dogs.*”的模式进行匹配。匹配这种末端的通配符比直接将路由键与“dogs”比较(“direct”类型的交换机)要消耗更多的CPU。如果你不需要“topic”类型的交换机带来的灵活性,你可以通过使用“direct”类型的交换机获取更高的处理效率。那么有哪些类型,他们又是怎么处理的呢?

第一节 图书、报刊的出版

  Exchange

第二节 表  演

  1. 图片 3

    ##### Exchange Direct

    图片 4 图片 5

    ##### Exchange Fanout

    图片 6

    ##### Exchange Topic

    图片 7 图片 8

第三节 录音录像

图片 9

第四节 广播电台、电视台播放


第五章 法律责任和执法措施

持久化

你花了大量的时间来创建队列、交换机和绑定,然后,服务器程序挂了。你的队列、交换机和绑定怎么样了?还有,放在队列里面但是尚未处理的消息们呢?

如果你是用默认参数构造的这一切的话,那么,他们都灰飞烟灭了。RabbitMQ重启之后会干净的像个新生儿。你必须重做所有的一切,亡羊补牢,如何避免将来再度发生此类杯具?

队列和交换机有一个创建时候指定的标志durable。durable的唯一含义就是具有这个标志的队列和交换机会在重启之后重新建立,它不表示说在队列当中的消息会在重启后恢复。那么如何才能做到不只是队列和交换机,还有消息都是持久的呢?

但是首先需要考虑的问题是:是否真的需要消息的持久化?如果需要重启后消息可以回复,那么它需要被写入磁盘。但即使是最简单的磁盘操作也是要消耗时间的。所以需要衡量判断。

当你将消息发布到交换机的时候,可以指定一个标志“Delivery Mode”(投递模式)。根据你使用的AMQP的库不同,指定这个标志的方法可能不太一样。简单的说,就是将Delivery Mode设置成2,也就是持久的(persistent)即可。一般的AMQP库都是将Delivery Mode设置成1,也就是非持久的。所以要持久化消息的步骤如下:

  1. 将交换机设成 durable。
  2. 将队列设成 durable。
  3. 将消息的 Delivery Mode 设置成2 。

绑定(Bindings)怎么办?绑定无法在创建的时候设置成durable。没问题,如果你绑定了一个durable的队列和一个durable的交换机,RabbitMQ会自动保留这个绑定。类似的,如果删除了某个队列或交换机(无论是不是durable),依赖它的绑定都会自动删除。

注意:

  • RabbitMQ 不允许你绑定一个非坚固(non-durable)的交换机和一个durable的队列。反之亦然。要想成功必须队列和交换机都是durable的。
  • 一旦创建了队列和交换机,就不能修改其标志了。例如,如果创建了一个non-durable的队列,然后想把它改变成durable的,唯一的办法就是删除这个队列然后重现创建。因此,最好仔细检查创建的标志。

在Windows上安装Rabbit MQ 指南,最好的是这篇《Rabbit MQ Windows Installation guide》,其中还包括了使用.NET RabbitMQ.Client Nuget 包访问Rabbit MQ的示例代码。

安装Rabbit MQ

Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装Rabbit MQ的前提是安装Erlang。通过下面两个连接下载安装3.2.3 版本:

  1. 下载并安装 Eralng OTP For Windows (vR16B03)
  2. 运行安装 Rabbit MQ Server Windows Installer (v3.2.3)

默认安装的Rabbit MQ 监听端口是5672

激活Rabbit MQ's Management Plugin

使用Rabbit MQ 管理插件,可以更好的可视化方式查看Rabbit MQ 服务器实例的状态,你可以在命令行中使用下面的命令激活:

"C:Program Files (x86)RabbitMQ Serverrabbitmq_server-3.2.3sbinrabbitmq-plugins.bat" enable rabbitmq_management

要重启服务才能生效,可以执行

net stop RabbitMQ && net start RabbitMQ

下面我们使用rabbitmqctl控制台命令(位于C:Program Files (x86)RabbitMQ Serverrabbitmq_server-3.2.3sbin>)来创建用户,密码,绑定权限等。

Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有权利。

c:Program Files (x86)RabbitMQ Serverrabbitmq_server-3.2.3sbin 的目录

2014/11/01  15:04    <DIR>          .
2014/11/01  15:04    <DIR>          ..
2014/01/23  22:57               817 rabbitmq-echopid.bat
2014/01/23  22:57             1,900 rabbitmq-plugins.bat
2014/01/23  22:57             4,356 rabbitmq-server.bat
2014/01/23  22:57             7,123 rabbitmq-service.bat
2014/01/23  22:57             1,621 rabbitmqctl.bat
               5 个文件         15,817 字节
               2 个目录 96,078,618,624 可用字节

c:Program Files (x86)RabbitMQ Serverrabbitmq_server-3.2.3sbin>rabbitmqctl.ba
t list_users
Listing users ...
guest   [administrator]
...done.

c:Program Files (x86)RabbitMQ Serverrabbitmq_server-3.2.3sbin>rabbitmqctl.ba
t list_vhosts
Listing vhosts ...
/
...done.

c:Program Files (x86)RabbitMQ Serverrabbitmq_server-3.2.3sbin>rabbitmqctl.ba
t add_user geffzhang zsy@2014
Creating user "geffzhang" ...
...done.

c:Program Files (x86)RabbitMQ Serverrabbitmq_server-3.2.3sbin>rabbitmqctl.ba
t list_users
Listing users ...
geffzhang       []
guest   [administrator]
...done.

c:Program Files (x86)RabbitMQ Serverrabbitmq_server-3.2.3sbin>rabbitmqctl.ba
t set_user_tags geffzhang administrator
Setting tags for user "geffzhang" to [administrator] ...
...done.

c:Program Files (x86)RabbitMQ Serverrabbitmq_server-3.2.3sbin>rabbitmqctl.ba
t set_permissions -p /  geffzhang ".*" ".*" ".*"
Setting permissions for user "geffzhang" in vhost "/" ...
...done.

c:Program Files (x86)RabbitMQ Serverrabbitmq_server-3.2.3sbin>rabbitmqctl.ba
t list_users
Listing users ...
geffzhang       [administrator]
guest   [administrator]
...done.

使用浏览器打开http://localhost:15672 访问Rabbit Mq的管理控制台,使用刚才创建的账号登陆系统:

图片 10

在.NET上使用Rabbit MQ

通过Nuget 获取Rabbit MQ NET client bindings from NuGet:

PM> Install-Package RabbitMQ.Client

我们最常见的一个场景是发送和接收Rabbit MQ 持久化消息:

第一步是声明durable Exchange 和 Queue

 private readonly ConnectionFactory rabbitMqFactory = new ConnectionFactory { HostName = "Geffzhang-NB", UserName="geffzhang", Password ="zsy@2014", VirtualHost ="/" };
const string ExchangeName = "test.exchange";
const string QueueName = "test.queue";

using (IConnection conn = rabbitMqFactory.CreateConnection())
using (IModel channel = conn.CreateModel())
{
    channel.ExchangeDeclare(ExchangeName, "direct", durable:true, autoDelete:false, arguments:null);

    channel.QueueDeclare(QueueName, durable:true, exclusive:false, autoDelete:false,arguments:null);
    channel.QueueBind(QueueName, ExchangeName, routingKey: QueueName);
}

下面对上面代码进行说明:
1.  使用ConnectionFactory创建连接,虽然创建时指定了多个server address,但每个connection只与一个物理的server进行连接。

2.  定义交换方式 ,创建了Direct Exchange和Durable Queue,并使用QueueName作为routing key ,可以把消息直接投递到某个队列。rabbitmq交换方式分为三种,分别是:
        Direct Exchange – 处理路由键。需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配。这是一个完整的匹配。如果一个队列绑定到该交换机上要求路由键 “dog”,则只有被标记为“dog”的消息才被转发,不会转发dog.puppy,也不会转发dog.guard,只会转发dog。
        Fanout Exchange – 不处理路由键。你只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换机转发消息是最快的。
        Topic Exchange – 将路由键和某模式进行匹配。此时队列需要绑定要一个模式上。符号“#”匹配一个或多个词,符号“*”匹配不多不少一个词。因此“audit.#”能够匹配到“audit.irs.corporate”,但是“audit.*” 只会匹配到“audit.irs”。

运行上述代码,可以在Rabbit MQ的管理控制台上看到test.exchange Exchange 绑定到 创建的队列 test.queue

第二步就是发布持久化消息到队列

Exchange和Queue建立好以后,就可以发送消息到队列了。RabbitMq 可以接受byte[]的数据,字符串采用utf-8编码的字节数组。确保消息可持久化的,需要设置PersistMode为true,参看下面的代码:

var props = channel.CreateBasicProperties();
props.SetPersistent(true);

var msgBody = Encoding.UTF8.GetBytes("Hello, World!");
channel.BasicPublish(ExchangeName, routingKey:QueueName, basicProperties:props, body:msgBody);
第三步就是消费消息了,有几种不同的方法从队列中消费消息,最常见的是使用BasicGet

BasicGetResult msgResponse = channel.BasicGet(QueueName, noAck: true);

var msgBody = Encoding.UTF8.GetString(msgResponse.Body);

NoAck:true 告诉RabbitMQ立即从队列中删除消息,另一个非常受欢迎的方式是从队列中删除已经确认接收的消息,可以通过单独调用BasicAck 进行确认:

BasicGetResult msgResponse = channel.BasicGet(QueueName, noAck:false);

//process message ...

channel.BasicAck(msgResponse.DeliveryTag, multiple:false);
使用BasicAck方式来告之是否从队列中移除该条消息,这一点很重要,因为在某些应用场景下,比如从队列中获取消息并用它来操作数据库或日志文件时,如果出现操作失败时,则该条消息应该保留在队列中,只到操作成功时才从队列中移除。

另一种方法是通过基于推送的事件订阅。您可以使用内置的 QueueingBasicConsumer 提供简化的编程模型,通过允许您在共享队列上阻塞,直到收到一条消息,例如

var consumer = new QueueingBasicConsumer(channel);    

channel.BasicConsume(QueueName, noAck: true, consumer: consumer);

var msgResponse = consumer.Queue.Dequeue(); //blocking

var msgBody = Encoding.UTF8.GetString(msgResponse.Body);

 

如何基于RabbitMQ实现优先级队列

第六章 附  则


  嗯,以上就是目录。


第一章 总  则

第一条 为保护文学、艺术和科学作品作者的著作权,以及与著作权有关的权益,鼓励有益于社会主义精神文明、物质文明建设的作品的创作和传播,促进社会主义文化和科学事业的发展与繁荣,根据宪法制定本法。

为了帮我们这些做各种创作的,让我们能受到法律保护,有名又能挣得到钱,创作出更多又好又正能量的东西,促进发展,国家特意依照宪法,制定了这个法律。

第二条 中国公民、法人或者其他组织的作品,不论是否发表,依照本法享有著作权。

我是中国人,只要是我创作的,发不发表,我都享有著作权。

外国人、无国籍人的作品根据其作者所属国或者经常居住地国同中国签订的协议或者共同参加的国际条约享有的著作权,受本法保护。

如果我是在中国的外国人,那我受到“我国”法律或者其与中国商量好的法律条款,也有著作权,也可以靠这个法律受到保护。

外国人、无国籍人的作品首先在中国境内出版的,依照本法享有著作权。

好吧,我还是那个外国人,我的 作品在中国首发,有中国法律规定的著作权。

未与中国签订协议或者共同参加国际条约的国家的作者以及无国籍人的作品首次在中国参加的国际条约的成员国出版的,或者在成员国和非成员国同时出版的,受本法保护。

呃,我还是那个外国人,我的作品若是在和中国商量好了的国家首发出版,或两地同时出版,那我也受到中国著作权法保护。

第三条 本法所称的作品,包括以下列形式创作的文学、艺术和自然科学、社会科学、工程技术等作品:

(一)文字作品;

我写出来的;

(二)口述作品;

我讲出来的;

(三)音乐、戏剧、曲艺、舞蹈、杂技艺术作品;

如字面意义;

(四)美术、建筑作品;

这里注意了,美术作品受保护,建筑作品也一样:你设计的建筑的楼,也是一种受到著作权保护的的作品哟。

(五)摄影作品;

我用各种手段拍摄的作品;

(六)电影作品和以类似摄制电影的方法创作的作品;

我导演的制作的电影,或者自制视频;无论能否公开放映,或者是否公布,都属于此类作品;举个例子,就是说,你自己录制的直播视频,也是有版权的;

(七)工程设计图、产品设计图、地图、示意图等图形作品和模型作品;

我做的设计类、测绘、标注类、示意图等等,以及创作的模型类,都算;这个类别很多……

(八)计算机软件;

是的,作为程序员的我没有看错,我写的计算机软件,是有版权的;

(九)法律、行政法规规定的其他作品。

这条意思是:其他……等等……

第四条 著作权人行使著作权,不得违反宪法和法律,不得损害公共利益。国家对作品的出版、传播依法进行监督管理。

我虽然有著作权,但是也不能违法犯罪,伤害社会。

而且,国家罩着我,也会管着我,

例如:广电总局对电影的审查等。

第五条 本法不适用于:

(一)法律、法规,国家机关的决议、决定、命令和其他具有立法、行政、司法性质的文件,及其官方正式译文;

好比我如今在做的事情,我们中国人也好外国人也罢,使用法律法规及所有相关的同性质文件,和翻译作品,都不侵权。

(二)时事新闻;

没错,我写的时事新闻,没有版权。

但是,我写的时事新闻评论文章或其他类似作品,有版权。

(三)历法、通用数表、通用表格和公式。

我想因为这是公共知识。

第六条 民间文学艺术作品的著作权保护办法由国务院另行规定。

民间文艺属于传统文化,其传承、创作的作品著作权另有规定。

但是据我所知,这类作品著作权的保护之旅举步维艰。

第七条 国务院著作权行政管理部门主管全国的著作权管理工作;各省、自治区、直辖市人民政府的著作权行政管理部门主管本行政区域的著作权管理工作。

国务院相关部门管理全国著作权相关工作;各级各地著作权相关部门管各地的工作。

第八条 著作权人和与著作权有关的权利人可以授权著作权集体管理组织行使著作权或者与著作权有关的权利。著作权集体管理组织被授权后,可以以自己的名义为著作权人和与著作权有关的权利人主张权利,并可以作为当事人进行涉及著作权或者与著作权有关的权利的诉讼、仲裁活动。

著作权集体管理机构,比较著名的有:我国的第一家著作权集体管理组织,即1992年12月17日成立的中国音乐著作权协会、还有中国音像与数字出版协会和文字著作权管理协会。可能还有其他的吧,举例这三个。

著作权集体管理组织是非营利性组织,其设立方式、权利义务、著作权许可使用费的收取和分配,以及对其监督和管理等由国务院另行规定。

敲黑板!

所有著作权集体管理组织,都是非盈利性组织!

他们的设立、权利义务和收费等和各种其他相关,必须依照国务院另行颁布的《著作权集体管理条例》。

《著作权集体管理条例》是2004年12月28日中华人民共和国国务院令第429号公布的一个文件。根据2011年1月8日关于国务院废止和修改部分行政法规的决定》第一次修订,根据2013年12月7日《国务院关于修改部分行政法规的决定》第二次修订。

第二章 著作权

第一节  著作权人及其权利

第九条 著作权人包括:

(一)作者;

我,进行创作的自然人。

(二)其他依照本法享有著作权的公民、法人或者其他组织。

我“或其他合法的公民,或法人、组织这类“非自然人”,即企业、机构、团体等等。

第十条 著作权包括下列人身权和财产权:

(一)发表权,即决定作品是否公之于众的权利;

(二)署名权,即表明作者身份,在作品上署名的权利;

(三)修改权,即修改或者授权他人修改作品的权利;

(四)保护作品完整权,即保护作品不受歪曲、篡改的权利;

此四条权利,是作者的著作权基本权利。

自作品创作出来之后,无论我是否发表作品,我都有发表与否的权利;自己决定用什么名字署名的权利(笔名或真名);是否自己修改或是否允许他人修改的权利;不准人家乱改我作品的权利。

古龙:原名熊耀华

(五)复制权,即以印刷、复印、拓印、录音、录像、翻录、翻拍等方式将作品制作一份或者多份的权利;

从这一条开始,就是作为创作者的我们,特别关心的了,也是我们可以靠着这个赚钱的权利

复制权,就是英美法律体系里“版权”的原始涵义。

我是作者,我有权将自己的作品自己或者授权他人和机构印刷、复印、拓印、录音、录像、翻录、翻拍。

从商业的角度来看,无法大规模复制的商品和服务,都是难以盈利的。

因此,复制权是我们作为创作者可以赚钱的基础,因为一般的创作者,很难自己有能力复制作品并进行商业销售,那么授权给其他人和机构代理,是最合理和方便的变现方式。

(六)发行权,即以出售或者赠与方式向公众提供作品的原件或者复制件的权利;

发行,是著作权专门术语,指为满足公众的合理需求,通过出售、出租等方式向公众提供一定数量的作品复制件。

这个权利,保障了我们创作者将作品收费或免费提供给公众的权益

发行是出版的一种,所以在我国,一般发行社和出版社是合二为一的。

(七)出租权,即有偿许可他人临时使用电影作品和以类似摄制电影的方法创作的作品、计算机软件的权利,计算机软件不是出租的主要标的的除外;

举个例子,我作为创作者,将版权卖给电视台、视频网站,就是因为这个权限。

(八)展览权,即公开陈列美术作品、摄影作品的原件或者复制件的权利;

我作为美术摄影类创作者,可以自己或授权其他人或机构用我作品或作品复制品开展览会,由于展览会也会有收费或免费,但无论收费或免费,主办方应该取得我的展览权授权,相应支付报酬。公益性质的展览亦然如此。后面有相关条文。

(九)表演权,即公开表演作品,以及用各种手段公开播送作品的表演的权利;

举例,我作为一个原创歌手,我有权按照自己的意愿,自行或与其他人,机构合作,去演唱、或通过电视节目直播录播,网络直播录播转播我的作品、表演。

(十)放映权,即通过放映机、幻灯机等技术设备公开再现美术、摄影、电影和以类似摄制电影的方法创作的作品等的权利;

这一条需要注意,其实文字也是有放映权的。比如我写了一篇关于生物学的文字,有人不取得我授权,将其变成PPT用来讲解课程,那么他也侵犯了我的放映权。

(十一)广播权,即以无线方式公开广播或者传播作品,以有线传播或者转播的方式向公众传播广播的作品,以及通过扩音器或者其他传送符号、声音、图像的类似工具向公众传播广播的作品的权利;

我有权将自己的作品授权给公众音频广播服务机构、个人、团队,录制成说书、诵读、广播剧且不限于此的其他形式进行传播。

需要注意的是,很多做博客的朋友,不经我们创作者授权,使用我们作品,那是犯法了哟。

(十二)信息网络传播权,即以有线或者无线方式向公众提供作品,使公众可以在其个人选定的时间和地点获得作品的权利;

互联网改变了整个世界。

信息网络传播权,是可以将我们创作者的影响力传播到全球的一种权限。

网络歌手,网络小说作者,近几年兴起的自媒体创作人,都是通过这个权利和网站合作,实现营利的。

(十三)摄制权,即以摄制电影或者以类似摄制电影的方法将作品固定在载体上的权利;

我们作为创作者,特别是文字写作者,都很盼望的影视改编版权买,就是来自这个权利。

(十四)改编权,即改变作品,创作出具有独创性的新作品的权利;

举个例子:《鬼吹灯》网剧改编权归属于企鹅影业的前提下,其他公司未经阅文集团许可,将无权使用《鬼吹灯》的世界观架构、人物名称等作品要素进行影视作品的改编;任何未经授权的改编行为,均有可能被视作侵权。如此看来,天下霸唱的《摸金符》除非另起炉灶,不然也会被认为侵权。

阅文集团对此进一步解释称:“阅文集团授权给了万达和梦想者影业,万达和梦想者影业与企鹅影业合作网络剧,除此之外,其他任何公司套用《鬼吹灯》的世界观架构,或者借用胡八一、王凯旋、Shirley杨、明叔等这些读者耳熟能详的角色名字来拍摄电影、网剧的行为均可能构成侵犯著作权。如果有其他任何个人或者公司宣称授权或者改编《鬼吹灯》的电影或网剧,可以断定,这要么是侵权行为,要么就是挂羊头卖狗肉,借用‘鬼吹灯’这三个字的宣传效应吸引眼球,但是实质上与《鬼吹灯》系列小说没有任何关系。”

(十五)翻译权,即将作品从一种语言文字转换成另一种语言文字的权利;

是的,我有本事的话,写出的作品很好,我有权将作品改编成其他任何语言,以便发行到其他国家和地区。

(十六)汇编权,即将作品或者作品的片段通过选择或者编排,汇集成新作品的权利;

(十七)应当由著作权人享有的其他权利。

著作权人可以许可他人行使前款第(五)项至第(十七)项规定的权利,并依照约定或者本法有关规定获得报酬。

著作权人可以全部或者部分转让本条第一款第(五)项至第(十七)项规定的权利,并依照约定或者本法有关规定获得报酬。


第二节 著作权归属

第十一条 著作权属于作者,本法另有规定的除外。

创作作品的公民是作者。

由法人或者其他组织主持,代表法人或者其他组织意志创作,并由法人或者其他组织承担责任的作品,法人或者其他组织视为作者。

如无相反证明,在作品上署名的公民、法人或者其他组织为作者。

这一条很关键,因为,我作为一个创作者,依法享有著作权的十七项权利,其中,前四项权力专属于作者的权利;第五项至第十七项是可以转让给他人的。

那么如果我的创作是在职务岗位任职时进行的,其实这个作品的作者会被法律视为作者,著作权归法人或组织所有。

关于职务作品的著作权纠纷很多,是版权官司的重灾区之一,所以请多留意一下。

下面另有相关条例。

第十二条 改编、翻译、注释、整理已有作品而产生的作品,其著作权由改编、翻译、注释、整理人享有,但行使著作权时不得侵犯原作品的著作权。

举例子,新浪微博、Acfun,B站和各大视频网站上很多用户出于兴趣爱好或商业性质制作的同人作品,解说视频,剪辑作品,鬼畜视频……

这类作品也有著作权,但是如果我制作此类作品,侵犯了原著的著作权,我是会被告上法院的。

今年金庸先生起诉江南的《此间的少年》侵权,就是一个活生生的例子。

由于国内对此类侵权裁定向来模糊不清,这个案子我们可以看着到底法院如何判决,它会成为中国著作权法律事件代表作之一,创作者维权之路的里程碑之一。

第十三条 两人以上合作创作的作品,著作权由合作作者共同享有。没有参加创作的人,不能成为合作作者。

是我和小伙伴一起做的,那么著作权我们都有份。

你没有参加创作,那么你别乱声称是合作创作人。

《芈月传》的小说原作者蒋胜男就曾为此起诉剧组,声称王小平没有不应该署名联合编剧。

我于2014年3月份交完全稿,6月份《芈月传》正式启动对外宣传,但出现在《芈月传》电视剧官方海报署名是“编剧:蒋胜男、王小平”。编剧竟然莫名的增加了王小平,这让我十分惊讶和不解!因为在我进行剧本改编时,王小平女士只是作为导演方提出过廖廖几点审稿意见而已,如何能同列编剧?当时考虑到剧本正在拍摄准备中,不想因为这些外在因素让自己精心孕育的剧本毁于一旦,同时制片方亦说是为了考虑到王小平女士的特殊身份,此时与制片方正式交涉,也会影响到拍摄进行,为顾全大局,也只能忍下这种委屈。另外,当时《芈月传》电视剧官方海报及其他宣传资料中也没有载明根据我的小说进行改编。

合作作品可以分割使用的,作者对各自创作的部分可以单独享有著作权,但行使著作权时不得侵犯合作作品整体的著作权。

再举个例子,我是一名词曲创作人,有一次我作词,朋友作曲,合作了一首原创歌曲,词的著作权是我,曲的著作权是朋友,我们都可以宣传这首作品是自己的作品,但是不应该说是自己独立创作的,也不可以不经过另一个人同意,随便处理著作权。

第十四条 汇编若干作品、作品的片段或者不构成作品的数据或者其他材料,对其内容的选择或者编排体现独创性的作品,为汇编作品,其著作权由汇编人享有,但行使著作权时,不得侵犯原作品的著作权。

例子:@光说电影 剪辑制作了《风华绝代的香港古装女星合集》,这就是一种汇编作品,@光说电影拥有著作权;但是如果《唐伯虎点秋香》周星驰版电影的版权方表示,@光说电影不可以用《唐伯虎点秋香》的素材,否则要起诉,那么@光说电影必须把有关这个电影的素材从作品中剪掉。

第十五条 电影作品和以类似摄制电影的方法创作的作品的著作权由制片者享有,但编剧、导演、摄影、作词、作曲等作者享有署名权,并有权按照与制片者签订的合同获得报酬。

敲黑板!划重点!

电影类作品的著作权归属制片方,但是——

我是其中的编剧、导演、摄影、作词、作曲等作者,我可以要求必须在这电影里标明我名字,

并有权按照与制片者签订的合同,拿到合理合法的小钱钱。

电影作品和以类似摄制电影的方法创作的作品中的剧本、音乐等可以单独使用的作品的作者有权单独行使其著作权。

另外,比如说我是《某某电影》的音乐制作人之一,为电影创作了主题歌《某某电影》,那么这个音乐作品,只要跟制片方合同里约定的使用方式方法不违背,我还可以单独去卖给其他人。

苏打绿的《我好想你》是《小时代》的主题曲,但是苏打绿也照样可以发专辑,公开演唱。

第十六条 公民为完成法人或者其他组织工作任务所创作的作品是职务作品,除本条第二款的规定以外,著作权由作者享有,但法人或者其他组织有权在其业务范围内优先使用。作品完成两年内,未经单位同意,作者不得许可第三人以与单位使用的相同方式使用该作品。

哈喽,大家很关系的职务作品相关条例又出现了。

记住这条,必考题。

两年!

我作为员工为老板或者公司创作的作品,是职务作品。

除了“法律、行政法规规定或者合同约定著作权由法人或者其他组织享有的职务作品”这种特殊作品之外,著作权还是属于我自己的。

但是,老板或者公司可以在法定经营范围内,优先使用。

而且,我在两年之内,公司不同意,我也不可以授权给其他人,其他公司使用。

有下列情形之一的职务作品,作者享有署名权,著作权的其他权利由法人或者其他组织享有,法人或者其他组织可以给予作者奖励:

(一)主要是利用法人或者其他组织的物质技术条件创作,并由法人或者其他组织承担责任的工程设计图、产品设计图、地图、计算机软件等职务作品;

(二)法律、行政法规规定或者合同约定著作权由法人或者其他组织享有的职务作品。

这条说明了什么情况下,我作为作者只有署名权,著作权都归属法人或组织。

然而我之前说过了,职务作品是维权重灾区。

第十七条 受委托创作的作品,著作权的归属由委托人和受托人通过合同约定。合同未作明确约定或者没有订立合同的,著作权属于受托人。

一句话:我如果选择做代笔人,做枪手,如果签了合同,有没有著作权,需要看合同我和金主咱们签约的,如果写着是金主的,那么我写完一千万字,著作权也是他的,如果他好人,说是合作作品,那么我也是联合著作权拥有者,如果他脑残,说是我写的,就是白给我钱,我就是捡到了钱,著作权还是我的。

如果我没跟金主签约,没有合同,或者合同没有写明著作权归属,那么恭喜我自己,这个作品是我自己拥有著作权的。

第十八条 美术等作品原件所有权的转移,不视为作品著作权的转移,但美术作品原件的展览权由原件所有人享有。

举例子:我是画家,画了《一幅画》,这幅画,我卖给王富二代了,展览权归王富二代,著作权还是我的。

第十九条 著作权属于公民的,公民死亡后,其本法第十条第一款第(五)项至第(十七)项规定的权利在本法规定的保护期内,依照继承法的规定转移。

著作权属于法人或者其他组织的,法人或者其他组织变更、终止后,其本法第十条第一款第(五)项至第(十七)项规定的权利在本法规定的保护期内,由承受其权利义务的法人或者其他组织享有;没有承受其权利义务的法人或者其他组织的,由国家享有。

同学们,考点又来了!

我死之后,我创作的作品,其著作权属于我的那些,是依照《继承法》转移给法定继承人的。

属于公司或者其他组织的那些,由他们的法定接盘侠继承

什么?惨到连接盘的都没有吗?

好的,国家帮忙,这些作品的著作权继承归国家!

第三节 权利的保护期

第二十条 作者的署名权、修改权、保护作品完整权的保护期不受限制。

对,我的署名权,修改权,保护作品完整权,是无限期的。我死了,你们也不许欺负我,不准乱改我名字,不准乱改我作品,不准破坏我作品。

第二十一条 公民的作品,其发表权、本法第十条第一款第(五)项至第(十七)项规定的权利的保护期为作者终生及其死亡后五十年,截止于作者死亡后第五十年的12月31日;如果是合作作品,截止于最后死亡的作者死亡后第五十年的12月31日。

如果我死了,我的著作权受法律保护五十年,不是周年。

如果是我和朋友合作的作品,那么我们合作的所有人都死了,著作权仍受法律保护五十年,不是周年。

法人或者其他组织的作品、著作权(署名权除外)由法人或者其他组织享有的职务作品,其发表权、本法第十条第一款第(五)项至第(十七)项规定的权利的保护期为五十年,截止于作品首次发表后第五十年的12月31日,但作品自创作完成后五十年内未发表的,本法不再保护。

电影作品和以类似摄制电影的方法创作的作品、摄影作品,其发表权、本法第十条第一款第(五)项至第(十七)项规定的权利的保护期为五十年,截止于作品首次发表后第五十年的12月31日,但作品自创作完成后五十年内未发表的,本法不再保护。

同理。

但是需要注意的是,如果我的作品创作后五十年内,都没有发表,著作权法不保护我的著作权。

第四节 权利的限制

第二十二条 在下列情况下使用作品,可以不经著作权人许可,不向其支付报酬,但应当指明作者姓名、作品名称,并且不得侵犯著作权人依照本法享有的其他权利:

(一)为个人学习、研究或者欣赏,使用他人已经发表的作品;

(二)为介绍、评论某一作品或者说明某一问题,在作品中适当引用他人已经发表的作品;

(三)为报道时事新闻,在报纸、期刊、广播电台、电视台等媒体中不可避免地再现或者引用已经发表的作品;

(四)报纸、期刊、广播电台、电视台等媒体刊登或者播放其他报纸、期刊、广播电台、电视台等媒体已经发表的关于政治、经济、宗教问题的时事性文章,但作者声明不许刊登、播放的除外;

(五)报纸、期刊、广播电台、电视台等媒体刊登或者播放在公众集会上发表的讲话,但作者声明不许刊登、播放的除外;

(六)为学校课堂教学或者科学研究,翻译或者少量复制已经发表的作品,供教学或者科研人员使用,但不得出版发行;

(七)国家机关为执行公务在合理范围内使用已经发表的作品;

(八)图书馆、档案馆、纪念馆、博物馆、美术馆等为陈列或者保存版本的需要,复制本馆收藏的作品;

(九)免费表演已经发表的作品,该表演未向公众收取费用,也未向表演者支付报酬;

(十)对设置或者陈列在室外公共场所的艺术作品进行临摹、绘画、摄影、录像;

(十一)将中国公民、法人或者其他组织已经发表的以汉语言文字创作的作品翻译成少数民族语言文字作品在国内出版发行;

(十二)将已经发表的作品改成盲文出版。

前款规定适用于对出版者、表演者、录音录像制作者、广播电台、电视台的权利的限制。

别眨眼,重点又来了。

这一条说明了什么情况什么使用环境之下,我创作的作品,可以被别人或者组织机构免费使用。

主要分为几种情况:

学习、研究或者欣赏;

常见的免责声明:学习用。

**适当引用;
**

在时事新闻、报纸杂志等、广播电视等合理引用(原作者声明不允许除外);

在电视报道中,引用歌曲表演作品。

教学或者科学研究;执行公务;

馆藏类机构陈列或者保存版本需要;

公益,免费使用(必须符合既不向公众收费,也不向表演者付费);

公益性演出指的是通过演出的形式参与到公益中来,不以盈利为目的。比如赈灾义演、公益球赛等等,都属于公益演出。

对公共场所的艺术作品进行临摹、绘画、摄影、录像;

这样拍照不侵权。

已发表的汉语作品翻译成少数民族语言作品在国内出版发行;

藏文图书。

将已经发表的作品改成盲文出版。

盲文图书



前款规定适用于对出版者、表演者、录音录像制作者、广播电台、电视台的权利的限制。

这句话如字面意义,很好理解。


【由于简书字数限制,只能发上下篇了,未完待续。】

本文由AG真人游戏平台发布于广播,转载请注明出处:唯其如此硬着头皮,AMQP的原本用处只是为金融界提供叁个足以互相合作的信息公约

关键词: