中间件寄术

EBU6501 Middleware

TB1

1.1 MOM(Messge-Oriented Middleware) 面向消息的中间件

Messaging

  • Messaging is a method of communication between software components or

    applications.

  • A messaging system:peer to peer (P2P)点对点

  • Messaging enables distributed communication that is loosely coupled

    消息传递支持松散耦合的分布式通信

  • Sender和receiver不需要知道对方的任何信息,除了要使用什么消息格式和目的地之外

  • 不同于 tightly coupled 紧密耦合的通信技术 比如 Remote Method Invocation (RMI)(远程方法调用):要求应用程序知道远程应用程序的方法。

  • 也不同于e-mail:是人与人或人与应用程序间的通信。

  • Messaging is used for communication between software applications or software components 消息用于应用程序之间或软件组成之间的通信

Messaging Services

  • A message service : **software component functionality **软件组件的功能

  • 一种**peer to peer(P2P)**通信

  • 每个组件既是client也是server

  • sender只需要知道要发送的数据格式和receiver的目的地

  • loosely coupled cimmunication 松散耦合

Advantages of Messaging
  1. Heterogeneous Integration 异构集成
    • 意味着messaging是middleware的一种形式
  2. Reduce System Bottlenecks 缓解系统瓶颈
  3. Increase Scalability 增大规模

Messaging Service的类型

  1. Cloud Messaging Service
    • Cloud solution
  2. Short Message Service(SMS)
    • Text messaging service
  3. Instant Message Service(IMS)
    • online chart messaging system
  4. Multimedia Message Service(MMS)
    • extend SMS
Cloud-Based Messaging Services举例

Google Cloud Messaging (GCM) Service;Google Cloud Messaging (GCM) Service;Java Messaging Service (JMS);Xiaomi MIUI Cloud Messaging Service

Message oriented Middleware (MOM)

定义:

Message-oriented Middleware (MOM) is a software or hardware that provides a communication channel between **heterogeneous **applications, platforms and systems by passing messages across between the communicating systems.

面向消息的中间件(MOM)是一种软件或硬件,它通过在通信系统之间传递消息,在异构应用程序、平台和系统之间提供一个通信通道。

  • MOM uses the eXtensible Messaging and **Presence Protocol (XMPP) **for communication 可扩展消息传递和状态协议(XMPP)
  • 提供异步通信
MOM 结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eTBFTeWV-1640226990834)(/Users/mac/Library/Application Support/typora-user-images/image-20211217130749774.png)]

MOM Client - Producer
  • Client使用“Message Producer”产生消息,然后由“Message Producer”发送,消息通常发送到physical目的地,该目的地使用目的地对象写入API中。
Message Broker
  • broker负责接收和发送消息
  • facilitates the connections
  • 使用加密的SSL验证连接 secure connection
MOM Client - Consumer
  • MOM使用异步消费方法:消息被自动传给“Message Listener”对象,被consumer定义。
  • 或者,消息只能被消息使用,配合comsumer选择的特性
  1. Client使用API调用以发送消息
  2. 消息发送至povider管理的目的地。该调用调用provider服务来route和
    传达消息。
  3. 一旦发送了消息,client可以继续其他的工作,相信provider会保留消息直到receiving client检索它。
MOM的类型
  • Message Queuing
  • Publish/Subscribe 发布/订阅
MOM Implementation Models MOM实现模型举例
  • Microsoft’s Message Queuing (MSMQ)

  • Oracle’s Java Messaging Service (JMS)

  • IBM’s WebSphere Message Queuing (WebSphere MQ)

  • Sonic Message Queuing (Sonic MQ)

*(考:20/21A)*MOM‘s Messaging Models 两种消息模型
  • Point-to-Point(P2P)
    • One-to-one
    • 一个sender一次只向一个receiver发送消息,client向特定队列发送消息,消息被发送到client指定的特定地址,receiver需要知道消息正在被发送
  • Publish/Subscribe(Pub/Sub)
    • One-to-many 或 many-to-many
    • 许多接收者或许多消息被许多接收者发送和接收,消息的sender和receiver是分离的
MOM的优点
  • Hides the complexity of applications
  • 发送和接收消息的方式reliable
  • MOM嵌入了security features,因此消息无法被拦截和改变
  • 发送消息异步 asynchronously
  • 允许异构系统heterogeneous systems
  • 允许不同编程语言跨平台移植ported(portability)
Publish-Subscribe
Pub/Sub Message类型
  • Topics-Based
  • Content-Based
  • Type-Based
Topics-Based
  • 分层命名:hierarchical naming
  • Logical arrangement
  • 特定名词
  • 专用序列
  • 缺点:由于使用特定名词,所以限制太大
Content-Based
  • 不使用特定名词
  • query-like
  • 优点:限制少,因为不使用特定名词
Type-Based
  • subscribers需要注册
  • 消息表示为objects
  • 缺点:有限制,因为用户需要注册以获取想要的信息类型
Publish/Subscribe Subscription Model

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SeRNjS9A-1640226990835)(/Users/mac/Library/Application Support/typora-user-images/image-20211217144536609.png)]

Security in MOMs
  • IBM uses System Authorisation Facility (SAF) to control access to MOM
  • Encrypted Messages 加密消息
MOM的Queuing Systems类型
  • First-In-First-Out(FIFO)
  • FIFO with Priorties 有优先级的
  • Journal Queue
  • Public Queue
  • Private Quene
  • Connector/Bridge

1.2 Java Messaging Service(JMS)

JMS API介绍

  • JMS is a Java Application Programming Interface (API) that allows applications to create, send, receive and read messages
  • JMS API允许松散耦合和异步通信:loosely coupled communication和asynchronous communication
  • reliable,确保消息只传递一次
  • 希望组件不依赖关于组件接口的信息,使组件易于替换(松散耦合)
  • provider希望组件同时运行(异步通信)

JMS API 架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PEKCFGcv-1640226990836)(/Users/mac/Library/Application Support/typora-user-images/image-20211217151504749.png)]

  • JMS Provider

  • JMS Clients

  • Messages

  • Administered Objects

    • 两种类型:Destinations(D)和Connection Factories (CF)
  • JNDI Namespace

(重点)Java Messaging Domains

  • Point-to-point(P2P) messaging domain
  • Publish/Subscibe messaging domain

PTP and Pub/Sub Domains

JMS Message Consumption类型

  • Synchronous 同步
  • Asynchronous 异步
    • client可以注册带有consumer的message listener,message listener类似于event listener

通常,message product是异步的

JMS API Programming Model

基本组件:Administered objects, connections, sessions, JMSContext objects, Message producers, Message consumers, Messages.

(重要)Administered Objects
  • 两种类型:Destinations(D)和Connection Factories (CF)
Connection Factories(CF)
  • is the object a client uses to create a connection with a provider

  • 每个CF都是QueueConnectionFactory接口 或 TopicConnectionFactory接口

  • 在J2EE SDK,可以使用默认CF objects:QueueConnectionFactory接口或TopicConnectionFactory接口来创建连接

  • 也可以使用新连接:

    j2eeadmin –addJmsFactory jndi_name queue

    j2eeadmin –addJmsFactory jndi_name topic

  • 在JMS client程序开头,使用JNDI API查找连接

    Context ctx = new InitialContext();
    
    QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) 
    ctx.lookup(“QueueConnectionFactory”);
    
    TopicConnectionFactory topicConnectionFactory = (TopicConnectionFactory) 
    ctx.lookup(“TopicConnectionFactory”);
    

    调用 InitialContext 方法 with no arguments results in a search of the current classpath for vendor-specific file named jndi.properties

Connections(是对象)
  • 使用connections创建一个或多个会话
  • 两种形式:QueueConnection 或 TopicConnection
  • 使用QueueConnectionFactory对象 或 TopicConnectionFactory对象创建连接:

QueueConnection queueConnection = queueConnectionFactory.createQueueConnection();

TopicConnection topicConnection = topicConnectionFactory.createTopicConnection();

  • 必须先调用“start”方法,应用程序才能使用消息
Destinations
  • client用来指定消息目标:specify the target of messages

  • j2eeadmin –addJmsFactory jndi_name queue

  • j2eeadmin –addJmsFactory jndi_name topic

  • 除了查找connection factory,还要查找destination

  • Topic:Topic myTopic = (Topic) ctx.lookup(“MyTopic”);

  • Queue:Quene myQuene = (Quene) ctx.lookup(“MyQuene”);

Sessions
  • A session is a single threaded context for producing and consuming messages

  • 创建message producers, message consumers and messages

  • 两种形式:使用QueueSession接口或TopicSession接口

  • 例如:创建TopicSession:

    TopicSession topicSession = topicConnection.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);

    第一个参数是boolean类型。

Message Producers
  • 是由session创建的对象:It is an object created by a session and is used for sending messages to a destination

  • PTP(P2P)message producer:QueueSender接口

    Pub/Sub message producer:TopicPublisher接口

  • 例如:使用QueueSession创建sender和TopicSession创建publisher

    QueueSender queueSender = queueSession.createSender(myQueue);

    TopicPublisher topicPublisher = queueSession.createPublisher(myTopic);

  • 创建了message producers之后,就可以使用它发送消息,注意,您必须首先创建消息来完成此操作

  • queueSender.send(message);

    topicPublisher.publish(message);

Message Consumers
  • 是由session创建的对象,用于接收发送到目的地的消息:A message consumer is an object created by a session and is used for receiving messages sent to a destination

  • P2P message consumer:QueueReceiver接口

    Pub/Sub message consumer:TopicSubscriber接口

  • 例如:使用QueueSession创建sender和TopicSession创建publisher

    QueueReceiver queueReceiver = queueSession.createReceiver(myQueue);

    TopicSubscriber TopicSubscriber = topicSession.createSubscriber(myTopic);

  • 使用receive方法同步P2P和Pub/Sub消息。调用start方法即可使用receive方法

    //start method
    queueConnection.start();
    Message m = queueReceiver.receive();
    topicConnection.start(0);
    Message m = topicSubscriber.receive(1000); // timeout after a second
    
  • 为了异步使用消息,使用message listener

Messages
Message Listeners
  • A message listener is an object that acts as an asynchronous event handler for messages
  • 实现了MessageListener接口,包含了onMessage方法
  • 使用setMessageListener方法,注册message listener,包含QueueReceiver和TopicSubsciber
  • TopicListener topicListener = new TopicListener();
  • topicSubscriber.setMessageListener(topicListener);
Message Selectors
  • Message selector允许message consumer筛选感兴趣的消息
Messages
  • JMS应用程序的目标是生成能够使用的消息,然后由其他软件应用程序使用

  • JMS messages包含:

    • Header (needed)

    • Properties (optional)

    • A body (optional)

Message Headers
  • 每个消息都包含由header field表示的特有的标识符:JMSMessageID
  • header field的值JMSDestination代表消息的queue或topic

Message Properties

  • Create and set properties for a message if you need values in addition to those provided by the header fields
  • Use properties to provide compatibility with other messaging systems or you can use them to create message selectors
Message Bodies
  • JMS API定义了message body formats,也叫message types。

  • 创建任何类型的消息,例如,TextMessage:

    TextMessage message = queueSession.createTextMessage();
    Message.setText(msg.text);
    queueSender.send(message);
    
  • 在consume最后,消息作为通用的Message对象,必须转换为适当的消息类型。可以使用一个或多个getter方法提取消息内容。

  • 例如:getText方法:

    Message m = queueReceiver.receive();
    if (m instanceof TextMessage) {
    TextMessage message = (TextMexxafe)m;
    Systems.out.println(“Reading message: “ + message.getText();
    } else {
    // Handle error
    }
    

JMS Message Types

  • TextMessage, MapMessage, BytesMessage, StreamMessage, ObjectMessage, Message

Exception Handling

  • 方法:JMSException,处理异常的通用方法。

  • The JMSException class includes the following subclasses:

    • IllegalStateException

    • InvalidClientException

    • InvalidDestinationException

    • InvalidSelectorException

    • JMSSecurityException

    • MessageEDFException

    • MessageFormatException

    • MessageNotReadableException

    • MessageNotWritableException

    • ResourceAllocationException

    • TransactionInProgressException

    • TransactionRolledBackException

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2O6MrMsf-1640226990836)(/Users/mac/Library/Application Support/typora-user-images/image-20211218130700255.png)]

MOM message的三个部分

  • Header
  • Properties
  • Body

1.3 JSP

TB2

2.3 Threads and Concurrency

2.4 Java Memory Model

TB3

3.1 Security Concepts for Middleware and Web Vulnerabilities

Middleware(recap)

  • Middleware - a software layer residing on top of the operating system that connects different software components or applications.
  • 提供互操作性和其他服务,如分发功能,可伸缩性,负载平衡和容错。
  • 中间件的功能(三大类):application specific, information-exchange, management and support.
    • Application-specific中间件提供服务 ——分布式数据库服务、分布式事务处理和专用服务移动计算和多媒体
    • Information-exchange middleware——information management
    • The management and support——与服务器通信,管理安全性、故障处理和性能监控。

Web Services Security concepts

  • Loosely coupled connectivity 松散耦合连接

    • 使用http
    • 多个client和servers之间独立交互
    • 分布式连接
  • 确保安全web services的方法

    -**Authentication **身份验证

    Authorisation 授权

    Confidentiality 保密

    Integrity 完整

下面细说这4个方法

1.Authentication

确认是同一个人,一个强大的authentication过程至少由两个步骤组成(sth one has, knows, is)

2.Authorisation

Access control访问控制

由一个或多个属性定义,属性是一个用户的特征

3.Confidentiality

Privacy, keeping information secretive

实现confidentiality和privacy

4.Integrity

信息不应被更改

Layer of security

1.Transport-layer

Secure Socket Layer (SSL), 也叫Transport Layer Security (TLS)

2.Application layer

补充Transport layer,基于XML frameworks

Data confidentiality通过 XML Encryption实现,Data integrity and authenticity 通过 XML Signature实现.

3.Middleware layer

Middleware layer确保communicating layer是安全的

Single Sign-On(SSO) systems 单点登录系统

Web Security 缺点

1.是黑客入侵的区域

2.injection flaws

3.prevention(For injection flaws)

4.Broken Authentication 无效的身份验证

5.Cross Site Scripting 跨站脚本

6.Insecure Direct Object Reference 不安全的直接对象引用

7.Security Misconfigurations

8.Sensitive data exposure 暴露敏感数据

9.Problem with access control level 访问控制级别的问题

10.Cross Site Request Forgery (CSRF) 跨站点请求伪造

11.Unvalidated Redirects and Forwards 未验证跳转

Use Web Security Vulnerability Scanners:自动的应用程序,扫描整个网站的漏洞

Security in Globus

Globus的安全特性被称为:Grid Security Infrastructure(GSI)

Globus使用proxy delegations, PKI, CAs, SSL/TLS

1.Getting Grid Security Certificate in Globus 网格安全认证

program名: grid-cert-request
//used to create a public/private key pair and unsigned certificate in ~/.globus/
对应的文件名:
//usercert_request.pem: Unsigned certificate file
//userkey.pem: Encrypted private key file(一定是只读的)

Mail usercert_request.pem to [email protected]
收到Globus-signed certificate:放在***~/.globus/usercert.pem***

2.Logging onto Globus(登录到Globus)
  • 运行程序需要Globus身份验证:%grid-proxy-init

  • Enter PEM pass phrase**(密码) //输入pass phrase:used to decrypt private key

  • grid-proxy-init里的选项:

    hours

    bits

    help

  • 作用:

    1.grid-proxy-init:create the local proxy file.

    2.private key:used to sign a proxy certificate with its own, new public/private key pair.

    3.Proxy放在***/tmp***中,read-only by user. No network traffic.

    4.gird-proxy-info显示proxy详细信息

3.Sign-On with "grid-proxy-init"in Globus(开始工作)
4.Destroy Grid Proxy in Globus(毁灭)

为了destroy gird-proxy-init创建的local proxy:%grid-proxy-destroy

不会destroy任何从这个proxy委托的proxy:无法撤销远程proxy,通常create短寿命的proxy

5.重要的GSI Files in Globus
  • /etc/grid-security:hostcert.pem; hotkey.pem; grid-mapfile
  • /etc/grid-security/certificates: CA certificates; ca-signing-polocy.conf
  • $HOME/.globus: usercert.pem; userkey.pem
  • /tmp:Proxy files
6.grid-mapfile和group-mapfile
  • Gird-mapfile maps individual users to their proxy and certificates for authentication and authorisation.

  • Group-mapfile maps individuals belonging to particular groups for authentication and authorisation

使用Globus的例子:CREAM-CE (Computing Resource Execution And Management-Computing Element) 计算资源执行与管理-计算元素

  • Is a gLite middleware that provides services for job management operations at the Computing Element level
  • 接受工作要求JDL (Job Description Language) used by WMS (Workload Management System)

3.2 Internet of Things protocol

IoT定义

  • Interconnection of individually unique and identifiable internet components. The components are embedded within the structure or framework of the internet. They use different protocols, domains, hardware, software and application platforms.

Communication Protocol

IEEE 802 把OSI link layer分成两个子layer从Data link layer:

  • Media-Access Control(MAC) layer
  • Logical Link Control(LLC) layer

IP-Based Protocols

  • 6LoWPAN and RPL(记缩写和全名)
    • 6LoWPAN stands for IPv6 over Low Power Wireless Personal Area Networks
    • RPL stands for Routing Protocol for Low power and Lossy networks and is created with specification of IETF 。是专门为IPv6通过低功率网络联络而创建的。

Representational State Transfer (REST)具象形态传输

HTTP-Hypertext Transfer Protocol 超文本传输协议

  • It is an application level communication protocol
  • main building block for data communication for the world wide web (WWW) 数据通讯的主要构件
  • main facilitating protocol 主要促进协议
  • 主要功能是to implement the request and response functionalities of web applications
  • 通常应用于 client-server applications

这张图要考

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-joZsuNYy-1640226990837)(/Users/mac/Library/Application Support/typora-user-images/image-20211222162549027.png)]

TCP/IP-Transport Control Protocol/Internet Protocol

  • Set of computer networking communication protocols

  • 用于internet communication和其他网络通信

  • an **end-to-end communication protocol **端到端

  • consists of “Linked Layers

  • Internet layer

    将数据包从源网络发送到单个或 多个目的地网络,使用“IP地址”(如10.20.40.8)作为主机地址来识别,发送数据包被称为“packet routing”

  • Transport layer

    It is a connection-oriented end-to-end message transmission **layer **面向连接的端到端传输层

  • Application layer

    This consists of other application specific protocols that allow exchange of data or provides some services

UDP-User Datagram Protocol

  • a connectionless-oriented communication transmission protocol 非连接的
  • TCP/IP的一部分
  • 没有一个可靠的系统来处理数据顺序,数据错误检查,并检查以纠正重复数据
  • It is good for transmitting data that accuracy and reliability are not necessary精确性和可靠性不是必须的
  • 比TCP/IP快,而且不检查精确性和数据重复

SOAP-Simple Object Access Protocol 简单对象访问协议

  • 使用TCP/IP中的application layer protocols
  • 使用XML (Extensible Mark-up Language) syntax
  • 优点:Neutrality, Non-platform dependence, Non-platform dependence

FTP(File Transfer Protocol) 文件传送协议

  • The File Transfer Protocol (FTP) is a standard network protocol used to transfer computer files from one host to another host over a TCP-based network, such as the internet.
  • It is built on a client-server architecture 客户端-服务器结构
  • 不安全,SFTP是FTP的安全版本

SSH-Secure Shell

  • UNIX(Linux)系统最受欢迎的通讯和login协议,也可以用在Windows系统
  • 加密数据和通信/登录信息
  • It uses the public key infrastructure (PKI) cryptography technology for authentication
  • port 22为标准
  • Popular applications that use SSH are Putty, VNC and WinSCP

MQTT-Message Queue Telemetry Transport

  • a messaging service protocol
  • based on the publish-subscribe messaging service model 基于pub/sub model
  • used on top of TCP/IP protocol
  • 在远程通信时改善网络质量
  • 使用publish messagesbroker
  • used by Facebook Messenger

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1NFObOOl-1640226990837)(/Users/mac/Library/Application Support/typora-user-images/image-20211222172154044.png)]

DDS-Data Distribution Service

AMQP-Advanced Message Queuing Protocol

  • a message-oriented middleware (MOM) protocol
  • based on the open standard application layer model
  • 能使异构clients和servers使用P2P或pub/sub方法通信
  • Apache Qpid framework使用的主要协议

RTPSP – Real Time Publish-Subscribe Protocol

  • a message oriented protocol
  • Cloud-based messages

SSL/TLS-Secure Socket Layer/ Transport Layer Security

  • 使用digital certificates
  • implement data confidentiality and data integrity

NTP-Network Time Protocol

  • a global networking protocol for synchronising time zone settings on computer systems
  • 不安全

IMAP-Internet Message Access Protocol

  • an internet application layer protocol
  • allows multiple users to simultaneously access the same mailbox

LDAP-Lightweight Directory Access Protocol

  • an application layer protocol
  • 用于accessing distributed directory information services over TCP/IP network
  • cloud system

IoT protocols的应用

smart Grid, Home appliances automation, car hiring services, Food collection/delivery services(外卖)

Bitcoin protocol

  • uses a peer-to-peer (P2P) network protocol
  • SHA-2

3.3 JavaScript Programming

介绍

  • a “scripting” language

  • a dynamic programming language 用于web应用开发,移动应用开发,non-web应用

  • 用于client side(web browsers)和server side application

  • JavaScript和Java

    • JavaScript is NOT Java

      – They have different semantics

      – JavaScript来源于C语言

结构

  • 必须start with tag
  • 可以嵌入HTML的** ** and tags

	
		 
	

Or 

	
		 
	

JS Operators

Arithmetic +, -, *, /, %, ++, –

Comparison <, >, ==, <=, >=, !=

Logical &, |, ~, &&, ||, !

JS Variables:用“var”声明变量

JS Assignment:用“=”赋值

JS Data Types

  • Array[],对象写在{}里,用,分隔

var student = {surName:”Wang”, firstName:”Liu”, age:20};

  • 创建objetcs用“new”,new后面必须紧跟一个函数调用,以这种方式使用的函数称为构造函数

  • 有些内置构造函数

    • var obj = new Object(); // creates an empty object similar to

    using {}

    • var arr = new Array(); // creates an empty array similar to

    using []

    • var dt= new date(); // creates a Date object with the current

    date

  • Boolean: 只有2种,True 和False

    var myBooleanValue1 = true;

    var myBooleanValue2 = false;

  • "typeof"知道数据类型

    typeof 23; // returns a number

    typeof “Wang”; // returns a string

    typeof false; // returns a boolean

JS 条件语句

  • If statement/ if else statement
if (condition) {
//execute the code here if the condition is true
}

Examples:
if (myAge < 16) {
driving = “I cannot drive!";
}
if (myAge < 16) {
driving = “I cannot drive!";
} else {
driving = “I can drive!";
}
  • Switch
switch(expression) {
case 1:
code block
break;
case 2:
code block
break;
default:
default code block
}
  • for, while

JS Functions

Create a function:

function functionName(para1, para2, …….) {

return returnValue;

}

var mySum = myAddFunction(4, 3); // Function is called, 
return value will end up in mySum
function myAddFunction(a, b) {
return a + b; // Function returns the sum of a and b
}

还有几个例子

DOM Methods

  • getElementByld: 获取元素的内容
  • innerHTML: 通过Id访问HTML元素


  • HTML元素被称为nodes

    创建node

This is a paragraph.

This is another paragraph.

​ remove existing elements

This is a paragraph.

This is another paragraph.

DOM Node list

◆ Use the “length” property to get define the number of nodes in a node list
var myNodeList = document.getElementsByTagName("p");
document.getElementById(“myNodes").innerHTML = myNodeList.length;

Classes



例1



My First Web Page

My first paragraph.

例2

Use of Expressions for Computation

3.4 JSON

输入输出

输入:Prompt, stdIn

输出:alert, stdOut

Example:

var strInput = WScript.StdIn.ReadAll();

WScript.StdOut.Write(strInput)

Cookies

Cookies are functionalities in web-browsers that enable data and information about web activities to be saved for future reference

Session cookies, First cookies, Third cookies

jQuery

jQuery consists of the following

– DOM element selections

– DOM manipulation

– Events

– AJAX (Asynchronous JavaScript and XML)

– JSON parsing

Basic syntax is: $(selector).action()

JSON

JSON -JavaScript Object Notation

TB4

你可能感兴趣的:(中间件,服务器,java)