文档库 最新最全的文档下载
当前位置:文档库 › 武汉理工大学中间件及软件组件2015-2016复习资料

武汉理工大学中间件及软件组件2015-2016复习资料

武汉理工大学中间件及软件组件2015-2016复习资料
武汉理工大学中间件及软件组件2015-2016复习资料

《中间件及软件组件》复习题

任课老师:祁明龙

时间:第一周——第八周

2012-4-8

1.什么Remote Method Invocation?

2.什么是POJO?

3.什么是EJB?

4.什么是Stateless Session Bean?

5.什么是Stateful Session Bean?与SLSF的区别是什么?

6.什么是EJB容器?试举出两个以上的产品。

7.什么是WEB容器?试举出两个以上的产品。

8.什么是JDBC API?它的标吧是什么?试举出三个以上的类。

9.JDBC-ODBC桥的数据源URL的格式是什么?

10.试说明MySql URL jdbc:mysql://localhost:3306/students每部分的含义。

11.一个Java接口要转变成RMI接口,需要继承什么接口?捕获什么异常?

12.一个Java Bean要能“序列化”,需要实现什么接口?

13.一个java.sql.ResultSet对象能序列化吗?

14.一个java.util.ArrayList对象能序列化吗?

15.一个java.util.ArrayList对象和java.util.List使用方法的差别是什么?

16.什么是JNDI?

17.jdk1.x的RMI JNDI 命名目录服务器是什么?

18.RMI/IIOP命名目录服务器是什么?

19.Java CORBA命名目录服务器是什么?

20.Jboss是什么服务器?带WEB服务器吗?带JNDI服务器吗?

21.GlassFish是什么服务器?带WEB服务器吗?带JNDI服务器吗?

22.什么CORBA?

23.什么IIOP?

24.什么是Stub, Skelton,他们的作用是什么?

25.什么是CORBA的POA? 作用是什么?

26.什么是IDL?

27.在jdk1.x(x>5)把一个IDL文件映射成Java目标代码的编译器及其主要选项

是什么?

28.什么是中间件?试举出若干重要的技术?

29.DCOM是中间件技术吗?

30.Microsoft Dot Net Framework是中间件技术吗?

31.什么是企业信息处理的异构性?

32.什么是Java Annotation?

33.EJB2.0与EJB3.0的区别是什么?

34.什么是一个EJB 部署描述符?是个符号吗?

35.标注@Stateless是做什么用的?

36.对于GlassFish EJB Container来说,标注

@Stateless(mappedName=”ejb/StudentBean”)属性值mappedName指的是什么?

37.标注@PersistenceContext(unitName=”MyEJBApp-ejbPU”) 属性值unitName

指的是什么?

38.什么是JPA, Java Persistence API 或Java Persistence Architecture?

39.什么是JPA QL?

40.标注@Id是做什么用的?

41.标注@Entity 是做什么用的?

42.标注@Column是做什么用的?

43.试举出标注@Column若干重要的属性。

44.javax.persistence.EntityManager接口的“妙用”?

45.什么是EJB3.0的Injection Mechanism及注入机制?

46.标注@NamedQueries({@NamedQuery(name=”Student.findAll”,query=”select

s from student s”), @NamedQuery(name=”Student.findById”,query=”select s from student where s.id = :id”)})出现在什么类型的Bean?含义是什么?

47.什么是一个Remote Method?

48.Query query = em.createNamedQuery(“Student.findAll”); Query标准类所

在的包是什么?em是什么类的一个实例?

49.接48小题,return query.getResultList();返回是什么类型?

50.Student aStudent = new Student(); em.persist(aStudent); aStudent是一个POJO

还是一个EB? em.persist(aStudent);的实际效应是什么?

51.String id; Student aStudentRecord = em.find(id);使用JPA QL,编写一个替

代Student aStudentRecord = em.find(id);语句的代码段。

52.一个IDL文件有三级模块嵌套module mia { module ham { module football

{……}…..}……}试问编译成Java目标代码后,最内层的某个接口所在的包是什么?

53.在一个以IDL定义的接口文件中有一个接口方法其原型是(Signature):void

computeRoots(in float a, in float b, in float c, out float x1, out float x2, out boolean hasRealRoots);试说明各个形参中修饰符in和out的含义;如果这是一个计算解一元二次方程根的Remote Method,按惯例试说明各个形参的含义及读写方式。

54.假定使用GlassFish作为EJB容器,那么在客户端应该使用来自EJB容器

的那几个jar文件?

55.假定使用GlassFish作为EJB容器,那么在客户端除了使用来自EJB容器

的四个jar文件外,还需要第五个jar文件,这第五个jar文件什么?

56.假定在客户端调用一个远程Session Bean,其所在的包是mia.ham.football.*;

那么你认为一个以下列代码开始的客户端错在哪儿?package ejbtest;

import javax.naming.*; import java.util.*; import middleware.course.*;

public class Client {……}

57.配置jdk1.6的classpath = .; %JA V A_HOME%/lib/tools.jar;其中那个点代

表什么意思?

58.简单描述通过JDBC-ODBC桥在一个Java应用中连接到一个Exel电子表

格,共有几层软件层?

59.如何配置ODBC数据源?

60.通过JDBC-ODBC桥在一个Java应用中连接到一个Exel电子表格,数据库

是指什么?一个数据库表单又是什么?

61.假定我们配置了一个连接到一个Exel电子表格的名为rmiiiop_ds,那么在

Java应用中对应的URL格式是什么?

62.假定我们的工作目录是%WORK_DIR%,在一个MS DOS命令行窗口,执

行命令cd %WORK_DIR%从而切换到工作目录下。假定,在工作目录下有一个包mia.ham.footbool,在此包之下有一个Java应用,名为Client.java。如何用javac编译它?又如何用java执行解释Client.class?

63.EJB分几种?她们的意义是什么?

64.在EJB3.0模型下,业务逻辑由什么类型的EJB承担?Data Layer又由什么

类型的EJB?

65.开发一个EJB服务器端的应用步骤是什么?

66.下图是选课学生前几位名单截图,创建一个与之对应的数据库表单的SQL

语句是什么?假定ID是主键。按学号查询的JPA QL语句是什么?

67.

68.基于RMI/IIOP创建一个查询以上Exel电子表格的分布式计算的步骤是什

么?接口,辅助类,服务器端以及客户端的编码?打包部署方法是什么?

如何测试?

69.同68,但是基于Java CORBA.

70.同68,但是基于J2EE EJB3.0,假定使用的EJB Container 是GlassFish.

71.编写一个Java应用程序,把以上Exel电子表格“腾到”MySql RDBMS的

students数据库下一个名为student的表单里。要求:首先使用JDBC-ODBC 桥把以上Exel电子表格读取并保存到一个java.util.ArrayList对象里,其次使用MySQL JDBC 4th Driver把保存到一个java.util.ArrayList对象里的每条记录插到student表单里。要求极其熟练的编写此类应用。

72.标注@Table(name=”Student”)极其属性值在EJB3.0中含义是什么?

73.Java Annotation和Java comment的异同?

74.在Java annotation 中,什么是元标注(meta annotation)?

75.

76.在以上截图中,说明为java程序解释器设置的每一个属性的含义。这是一

个EJB应用客户端。假定EJB部署在IP地址为192.168.0.29的一台装有EJB Container例如GlassFish的物理主机上,且客户端运行在另一台物理主机上,那么以上代码中何处应该修改?

77.

78.以上截图中是一个EJB应用客户端代码片段。试说明,”ejb/StudentBean”

的含义。StudentRemote是一个远程接口还是一个Session Bean?

79.

80.以上是一个实体Bean的头部部分代码截图,由NetBeanIDE 6.5自动生成。

试解释每一个Java Annotation.

81.

82.以上是一个实体Bean的头部部分代码,由NetBeanIDE 6.5自动生成。试

解释每一个Java Annotation.

83.对于66小题Exel电子表格,使用IDL定义一个能够表示每个选课学生信

息的结构体,一个能够存放表格数据的IDL类型,和类似与select * from student SQL语句的某个IDL接口方法。

84.

85.以上截图中的IDL代码能满足83小题的需要吗?为什么?

86.什么是ORB即Object Request Brocker?

87.什么是CORBA 的IOR即Interoperable Object Reference ?作用是什么?

88.什么是CORBA的A Naming Context?作用是什么?

89.

90.根据71小题在MySql students数据库中生成的表单student,创建一个基于

Stateless Session Bean和Entity Bean的数据库应用,进行各种命名查询。

假定我们使用的开发工具是NetBeanIDE 6.5+GlassFish V2+MySql 4.2,那么Entity Bean 的Java代码是:Student.java

package course.eb;

import java.io.Serializable;

import javax.persistence.Basic;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.Id;

import https://www.wendangku.net/doc/0d10019488.html,dQueries;

import https://www.wendangku.net/doc/0d10019488.html,dQuery;

import javax.persistence.Table;

@Entity

@Table(name = "student")

@NamedQueries

({

@NamedQuery(name = "Student.findAll",

query = "SELECT s FROM Student s"),

@NamedQuery(name = "Student.findById",

query = "SELECT s FROM Student s WHERE s.id = :id"),

@NamedQuery(name = "Student.findByName",

query = "SELECT s FROM Student s WHERE https://www.wendangku.net/doc/0d10019488.html, = :name"), @NamedQuery(name = "Student.findByMajor",

query = "SELECT s FROM Student s WHERE s.major = :major"), @NamedQuery(name = "Student.findByClass1",

query = "SELECT s FROM Student s WHERE s.class1 = :class1") })

public class Student implements Serializable {

private static final long serialVersionUID = 1L;

@Id

@Basic(optional = false)

@Column(name = "ID")

private String id;

@Basic(optional = false)

@Column(name = "NAME")

private String name;

@Basic(optional = false)

@Column(name = "MAJOR")

private String major;

@Basic(optional = false)

@Column(name = "CLASS")

private String class1;

public Student() {

}

public Student(String id) {

this.id = id;

}

public Student(String id, String name,

String major, String class1) {

this.id = id;

https://www.wendangku.net/doc/0d10019488.html, = name;

this.major = major;

this.class1 = class1;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.wendangku.net/doc/0d10019488.html, = name;

}

public String getMajor() {

return major;

}

public void setMajor(String major) {

this.major = major;

}

public String getClass1() {

return class1;

}

public void setClass1(String class1) {

this.class1 = class1;

}

}

无状态会话Bean: StudentSLSBBean.java代码:

package course.eb;

import javax.ejb.Stateless;

import java.util.List;

import javax.persistence.PersistenceContext;

import javax.persistence.EntityManager;

import javax.persistence.Query;

@Stateless(mappedName="ejb/StudentSLSBBean")

public class StudentSLSBBean

implements StudentSLSBRemote {

@PersistenceContext(unitName="MyEJBApp02-ejbPU")

private EntityManager em;

public List findAllStudents() {

Query query = em.createNamedQuery("Student.findAll");

return query.getResultList();

}

public Student findStudentByID(String id) {

Query query = em.createNamedQuery("Student.findById");

query.setParameter("id",id);

return (Student)query.getSingleResult();

}

public Student findStudentByName(String name) {

Query query = em.createNamedQuery("Student.findByName");

query.setParameter("name",name);

return (Student)query.getSingleResult();

}

public List findStudentsByMajor(String major) {

Query query = em.createNamedQuery("Student.findByMajor");

query.setParameter("major",major);

return query.getResultList();

}

public List findStudentsByClass(String class1) {

Query query = em.createNamedQuery("Student.findByClass1");

query.setParameter("class1",class1);

return query.getResultList();

}

}

接口:

:StudentSLSBRemote.java:

对应的Remote接口

package course.eb;

import javax.ejb.Remote;

import java.util.List;

@Remote

public interface StudentSLSBRemote {

List findAllStudents();

Student findStudentByID(String id);

Student findStudentByName(String name);

List findStudentsByMajor(String major);

List findStudentsByClass(String class1);

}

91.假定在students数据库种有另一个数据库表单Emails(Name varchar(50) not

null primary key, Email varchar(50) not null),仿照第90题,手写出Entity Bean,Stateless Session Bean和对应的接口。假设Persistence Uint Name 是”MyEEApp-ejbPU”,Stateless Session Bean 的JNDI名称是”ejb/EmailsBean”。(模拟考试题:能根据数据库表单的字段仿照第90小题,手写出EB,SLSB和SLSBRemote的代码)

92.根据第90小题StudentSLSBRemote所“暴露”的接口写出一个客户端应用。

Client.java:

package ejbtest;

import java.util.Properties;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import java.util.List;

import java.util.Scanner;

import course.eb.*;

public class Client {

public static void menu()

{

System.out.println("\n\n-----Menu Options-----");

System.out.println("1 display all");

System.out.println("2 display by class");

System.out.println("3 display by id");

System.out.println("4 display by name");

System.out.println("9 quit");

System.out.println("Your choice=>");

System.out.println("----------------------\n\n");

}

public static void printList(List students)

{

for(Student s:students)

{

System.out.println(

s.getId()+"\t\t"+

s.getName()+"\t\t"+

s.getMajor()+"\t\t"+

s.getClass1()

);

}

}

public static void printStudent(Student stu)

{

System.out.println(

"My id is:\t"+stu.getId()+"\n"+

"My name is:\t"+stu.getName()+"\n"+

"My major is:\t"+stu.getMajor()+"\n"+

"My class is:\t"+stu.getClass()

);

}

public static void main(String[] args) {

Properties props = new Properties();

props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");

props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");

props.setProperty("java.naming.factory.state",

"com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");

props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");

props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");

try {

InitialContext ctx = new InitialContext(props);

StudentSLSBRemote sr =(StudentSLSBRemote)ctx.lookup("ejb/StudentSLSBBean");

List pl = sr.findAllStudents();

printList(pl);

String op=null;

Scanner input = new Scanner(System.in);

int opn=6;

do {

menu();

op=input.nextLine();

opn=Integer.parseInt(op);

switch(opn)

{

case 1:

List stus =

sr.findAllStudents();

if(stus==null)

System.out.println("List is empty.");

printList(stus);

break;

case 3:

System.out.println("Input student id:");

String id = input.nextLine();

Student stu = sr.findStudentByID(id);

printStudent(stu);

break;

case 2:

System.out.println("Input students' class:");

String stuClass = input.nextLine();

List stux =

sr.findStudentsByClass(stuClass);

printList(stux);

break;

case 4:

System.out.println("Input student name:");

String stuName = input.nextLine();

Student stuxx =

sr.findStudentByName(stuName);

printStudent(stuxx);

break;

case 5:

break;

default:

break;

}

}while(opn!=9);

} catch (NamingException e) {

e.printStackTrace();

}

}

}

93. 假定一个SLSB 所“暴露”的远程接口是:

package mypkg;

import java.util.List;

@Remote

public interface MymyRemote

{

Me getMe(String id);

}

Me 是对应的Entity Bean ,其成员变量是:String id, name,phone;对应的无状态Bean 是MymyBean,JNDI 名称是”ejb/MymyBean”。仿照第92小题,创建一个客户端应用,打印String id=”090001001”所对应的实体Bean 的所有字段。(模拟考试题)

答案答案::

71题:

在Window 下配置Exel 电子表格的ODBC 数据源。注意:整个Exel

文档是“数据库”,而电子表格区的逻辑名称为“数据库表单”。假定数据库表单名称为student,而ODBC 数据源名称为rmiiiop_ds.

编写一个表示表单记录,实现java.io.Serializable 的Java Bean ,其成员

变量必须与表单的字段严格对应。

使用JDBC-ODBC 桥连接到Exel 文档,把电子表格的每一个记录包装

成一个Java Bean 对象里,接着把该对象保存到一个数组链表对象里,即一个java.util.ArrayList 对象里。

使用MySql RDBMS JDBC Driver ,把数组链表对象里的每一个Java

Bean 对象的成员数据插入到在students 数据库中的student 表单里。分以下几小步:

安装MySql 4.2。注意在配置时,选择UTF-8字符集,否则不能显示中文。

设MySql的登录口令为root,密码为miaham。打开一个MySql命令行窗口,创建名为students的数据库。以下一些命令或许对你有帮助:show databases; show tables; create database students; use students; create table student(id vrachar(50) not null primary key, name varchar(50) not null, major varchar(50) not null, class1 varchar(50) not null); select * from student; ……等等SQL语句。详见数据库课程。

安装jdk1.6,配置Path和Classpath两个系统参数。

把MySql JDBC驱动类所在的jar文件,要么配置到Classpath系统参数中,要么复制到Java运行时的%JRT_DIR%\lib\ext目录之下。这个jar文件名称为mysql-connector-java-5.0.6-bin.jar,可以下载。

原理图:

参考下面代码:

封装数据库表单的那个POJO,即Java Bean:

文件名称:STUDENT.java 所在包:mia.ham.footbal

package mia.ham.footbal;

import java.util.Serializable;

public class STUDENT implements Serializable

{

private String id,name,major,cls;

public STUDENT(String id, String name, String major, String cls) { super();

this.id = id;

https://www.wendangku.net/doc/0d10019488.html, = name;

this.major = major;

this.cls = cls;

}

public STUDENT() {

super();

// TODO Auto-generated constructor stub

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.wendangku.net/doc/0d10019488.html, = name;

}

public String getMajor() {

return major;

}

public void setMajor(String major) {

this.major = major;

}

public String getCls() {

return cls;

}

public void setCls(String cls) {

this.cls = cls;

}

public void print()

{

System.out.println(

this.id+"\t\t"+

https://www.wendangku.net/doc/0d10019488.html,+"\t\t"+

this.major+"\t\t"+

this.cls

);

}

}

把Exel电子表格“腾到”MySql 数据库表单中的Java 应用类:

文件名:DBApp.java 所在包:mia.ham.footbal import java.sql.*;

import java.util.ArrayList;

import java.util.Iterator;

public class DBApp {

private ArrayList al = new ArrayList();

public void fillArrayList()

{

try{

String driver = "sun.jdbc.odbc.JdbcOdbcDriver";

String url="jdbc:odbc:rmiiiop_ds";

String user="";

String password="";

String sql="SELECT * FROM STUDENT";

Class.forName(driver);

Connection con =

DriverManager.getConnection(url,user,password);

if(con!=null)

System.out.println("Connection to DB is established!");

else

System.out.println("Connection to DB is failled!");

Statement st = con.createStatement();

ResultSet rs = st.executeQuery(sql);

while(rs.next())

{

al.add(new STUDENT(rs.getString("ID"),rs.getString("Name"), rs.getString("Major"),rs.getString("Class")));

}

rs.close();

st.close();

con.close();

}catch(Exception ex)

{

ex.printStackTrace();

}

}

public void display()

{

this.fillArrayList();

Iterator it = al.iterator();

while(it.hasNext())

{

STUDENT stu= (STUDENT)it.next();

stu.print();

}

}

public void selectAll()

{

try{

String driver = "com.mysql.jdbc.Driver";

String url=

"jdbc:mysql://localhost:3306/students"+

"?useUnicode=true&characterEncoding=UTF-8";

String user = "root";

String passwd = "miaham";

String sql = "SELECT * from STUDENT;";

Class.forName(driver);

Connection con =

DriverManager.getConnection(url,user,passwd);

if(con!=null)

System.out.println("Connection to DB is

established!");

else

System.out.println("Connection to DB is failled!");

Statement st = con.createStatement();

ResultSet rs = st.executeQuery(sql);

while(rs.next())

System.out.println(rs.getString("id")+"\t\t"+

rs.getString("name")+"\t\t"+

rs.getString("major")+"\t\t"+

rs.getString("class"));

st.close();

rs.close();

con.close();

}catch(Exception ex )

{

ex.printStackTrace();

}

}

public void delete()

{

this.fillArrayList();

try{

String driver = "com.mysql.jdbc.Driver";

String url=

"jdbc:mysql://localhost:3306/students"+

"?useUnicode=true&characterEncoding=UTF-8";

String user = "root";

String passwd = "miaham";

/***

String sqlCreate = "CREATE TABLE STUDENT(ID varchar(50) not null"+ " primary key,NAME varchar(50) not null,"+

" MAJOR varchar(50) not null,"+

"CLASS1 varchar(50) not null)";

***/

String sqlDelete = "delete from STUDENT "+

"where id =?";

Class.forName(driver);

Connection con =

DriverManager.getConnection(url,user,passwd);

if(con!=null)

System.out.println("Connection to DB is established!");

else

System.out.println("Connection to DB is failled!");

//Statement st = con.createStatement();

//st.execute(sqlCreate);

con.setAutoCommit(false);

PreparedStatement pst =

con.prepareStatement(sqlDelete);

Iterator it = al.iterator();

while(it.hasNext())

{

STUDENT stu = (STUDENT)it.next();

pst.setString(1, stu.getId());

pst.executeUpdate();

}

https://www.wendangku.net/doc/0d10019488.html,mit();

pst.close();

//st.close();

con.close();

}catch(Exception ex )

{

ex.printStackTrace();

}

}

public void fromExel2MySql()

{

this.fillArrayList();

try{

String driver = "com.mysql.jdbc.Driver";

String url=

"jdbc:mysql://localhost:3306/students"+

"?useUnicode=true&characterEncoding=UTF-8";

String user = "root";

String passwd = "miaham";

String sqlCreate = "CREATE TABLE STUDENT(ID varchar(50) not null"+ " primary key,NAME varchar(50) not null,"+

" MAJOR varchar(50) not null,"+

"CLASS1 varchar(50) not null)"+

"ENGINE=InnoDB DEFAULT CHARSET=utf8";

String sqlInsert = "insert into STUDENT("+

"id,name,major,class1) values ("+

"?,?,?,?)";

Class.forName(driver);

Connection con =

DriverManager.getConnection(url,user,passwd);

if(con!=null)

System.out.println("Connection to DB is established!");

else

System.out.println("Connection to DB is failled!");

Statement st = con.createStatement();

st.execute(sqlCreate);

con.setAutoCommit(false);

PreparedStatement pst =

con.prepareStatement(sqlInsert);

Iterator it = al.iterator();

while(it.hasNext())

{

STUDENT stu = (STUDENT)it.next();

pst.setString(1, stu.getId());

pst.setString(2,stu.getName());

pst.setString(3, stu.getMajor());

pst.setString(4, stu.getCls());

pst.executeUpdate();

}

https://www.wendangku.net/doc/0d10019488.html,mit();

pst.close();

st.close();

con.close();

}catch(Exception ex )

{

ex.printStackTrace();

}

}

public static void main(String[] args)

{

DBApp db = new DBApp();

//db.delete();

db.fromExel2MySql();

//db.fillArrayList();

//db.display();

//db.selectAll();

}

}

打开一个DOS命令行窗口,cd 到你的工作目录,创建三级子目录%WORKING_DIRECTORY%\mia\ham\footbal,把以上两个Java源码文件复制到%WORKING_DIRECTORY%\mia\ham\footbal之下,按以下命令编译解释:

编译:javac .\mia\ham\footbal\*.java, 回车。

解释执行:java mia.ham.footbal.DBApp, 回车。

验证:要验证是否已经成功的把Exel电子表格“腾到”MySql中,students数据库中的

一个名为student 表单中,有两种方法:

在上面的 DBApp.java 类中有一个成员方法,public void selectAll(),容许利用

MySql JDBC 驱动连接到MySql 的students 数据库中,执行select * from student 语句,并把保存到“内存数据库表单”,即一个java.sql.ResultSet 数据集对象里的student 表单的每一条记录,逐一显示在屏幕。所以,你要做的仅仅是把主方法中的通过对象调用其他方法的语句注解掉,而只保留调用selectAll()方法的语句,接着重新编译和执行DBApp 这个Java 应用。

在MySql RDBMS 下直接验证,气步骤不再累述。

第68题答案题答案:《:《软件构件与中间件软件构件与中间件软件构件与中间件》》实验实验一一

题目:基于RMI/IIOP 创建一个查询以上Exel 电子表格的分布式计算。 答案及步骤:

RMI/IIOP 和RMI 不同的地方是,前者使用IIOP “标准”CORBA 的

网络协议,因此可以和其它CORBA 应用进行互操作,而相同的地方是,RMI 和RMI/IIOP 都使用Java 定义远程对象所“暴露”的接口。这就是In the framework of pure Java ,“纯Java 爷们”框架类内的分布式应用。RMI/IIOP 和“标准”CORBA 不同的地方是,后者必须用IDL 定义远程对象所“暴露”的接口。

注意“内存数据库表单”即一个java.sql.ResultSet 对象是不能被“序

列化”的,即不能把这样一个对象的状态写到一个网络Socket 文件里的,所以,必须把“内存数据库表单”里的每一条记录封装到一个实现java.io.Serializable ,根据数据库表单“量身定做”的Java Bean 一个对象里,再把该对象“丢到”一个java.util.ArrayList 数组列表对象里。Java 数据结构标包中的任一类的对象都能被“序列化”,可以从一个网络的一个节点传到另一点。

定义接口定义接口::文件名文件名::ROInter.java 所在包所在包::mia.ham.footbal

package mia.ham.footbal;

import java.rmi.Remote;

import java.rmi.RemoteException;

import java.util.*;

/**

*

* @author Administrator

*/

public interface ROInter extends Remote

{

public ArrayList getStudents() throws RemoteException;

}

定义Java Bean 文件名文件名::STUDENT.java 所在包所在包::mia.ham.footbal

package mia.ham.footbal;

import java.io.Serializable;

/**

*

武汉理工软件工程经济学复习范围

1、根据系统工程的理论,软件工程应包括哪三大类知识? 根据系统工程的理论,任何一个工程学科,其方法均可划分为三大部分:工程技术学方法、工程经济学方法和工程管理学方法。因此软件工程作为一种特殊的工程商品,其生产过程方法论同样可以划分为:软件工程技术学方法论、软件工程经济学方法论和软件工程管理学方法论等三部分。 2、什么是软件生存周期?软件生存周期一般可划分为哪几个阶段? 将软件以概念的形成开始,经过开发、使用和维护,直到最后退役的全过程成为软件的生存周期。 可根据其所处的状态、特征以及软件开发活动的目的、任务划分为七阶段。 1.可行性分析 2.计划与需求分析 3.概要设计 4.详细设计与编码 5.集成与测试 6.运行与维护 7.退役 4、简述成本的经济容。 成本经济容基本包括下面三个方面: 1.劳动资料方面的损耗,主要指固定资产的折旧费,与此相关的损耗还有设备运转所需的动力费,为保持设备正常工作状态所需的修理费及设备购买与安装、运输等费用; 2.劳动对象方面的损耗,主要是指各类损耗材料费及材料的仓储、运输费用等; 3.人工方面的消费与消耗,主要是指工资及与此相关的福利费,为职工支付的保险费等。 5、什么是资金的时间价值?为什么资金的时间价值会直接影响软件项目的经济效果? 在市场经济中,资金若锁住不用,会随着通货膨胀而产生贬值;相反,如存入银行或投资工程项目(如NIS项目),则该资金将进入一个循环和周转的过程,他的绝对金额将随着时间推移而转移,并将发生相应的增额或减额的变化,其增加或者减少的金额部分称为资金的时间价值。 对于软件构建者(经济主体),其资金的投入是按照经济活动的需求在生命周期的各阶段分批、分期投入,构成了一个现金(投入)流出量序列,其收益也构成一个收益(现金流入量)时间序列,所以客观评价软件项目方案的经济效果,不仅要考虑现金流入流出的总额,还必须考虑资金的时间价值。此外,还应注意,企业对软件的投资绝大部分来自于对银行(或其他渠道)的借贷,由于借入与还贷之间有一个时间差距,因而必须考虑资金的时间价值。

《软件构件与中间件技术》全真试题

学习中心_________ 姓名_____________ 学号 西安电子科技大学网络与继续教育学院 《软件构件与中间件技术》全真试题 (开卷90分钟) 题号一二总分 题分31 69 得分 一.多项选择题(共12小题,31分。按照要求的选项个数选择) 1. 在3层结构的分布式系统中,()包含了系统的核心业务逻辑。(选1,2分) (A)客户层(B)中间层(C)数据层(D)以上都不是 2. 典型的集成中间件为开发人员提供的三种基本支撑为:(选3,3分)() (A)提供构件运行环境(B)提供互操作机制 (C)提供公共服务(D)提供数据库管理 3. 构件通过封装隐藏其实现细节,构件接口是构件对外公布的唯一信息,使用者只能通过接口了解并使用组件。CORBA对象的接口是用()定义的,EJB构件的接口是用()定义的,Web Service的接口是用()定义的。(各选1,3分) (A)WSDL (B)Java interface (C)自然语言(D)OMG IDL 4. 在支持分布式对象访问的桩/框架(Stub/Skeleton)结构中,负责替客户端完成底层通信相关工作的是(),负责替服务端完成底层通信相关工作的是()。(各选1,2分) (A)客户端桩(Stub)(B)构件的接口 (C)服务端框架(Skeleton)(D)分布式对象自身 5. 在下图所示的OMA参考模型中,哪些涵盖了我们开发一个基于CORBA的应用时 可以直接使用、不需自己实现的功能:(选3,3分)()

(A)对象服务(B)领域接口(C)公共设施(D)应用程序接口 6. CORBA IDL文件中可以定义模块、类型、常量、异常、接口、值等6种规格说明,其中IDL文件的核心内容是:(选1,2分)()(A)类型(B)常量(C)接口(D)值 7. CORBA规范可以实现的可互操作性包括:(选3,3分)() (B)不同平台(如不同操作系统)与语言之间的可互操作性 (C)不同厂商ORB产品之间的可互操作性 (D)不同体系结构中的组件的互操作性(部分支持) (E)不同CORBA规范版本之间的可互操作性 8.下面关于EJB的会话构件(Session Bean)的描述正确的有:(选2,2分)() a)Session Bean存在于客户应用与应用服务器交互的时间段内,Session bean 中的数据不保存在数据库中。 b)Session Bean与数据库中的数据具有相同的生存期,Session bean中的数 据要保存在数据库中。 c)有状态Session Bean的对象需要保存与客户端交互的中间状态,因此需要 为每个客户端生成一个对象供其专用。 d)无状态Session Bean的对象需要保存与客户端交互的中间状态,因此需要 为每个客户端生成一个对象供其专用。 9.下面关于EJB的实体构件Entity Bean的描述正确的有:(选2,2分)() a)Entity Bean的主要作用是提高数据库访问效率,向使用者提供JDBC接口, 利用需要开发。 b)Entity Bean的主要作用是封装数据库操作,将数据库操作转嫁到Entity Bean对应的Java类/对象上,从而简化数据库相关应用的开发。 c)使用者调用CMP(容器维护的持久性)类型Entity Bean的Home接口中 create操作会导致在数据库中插入记录。 d)使用者调用CMP(容器维护的持久性)类型Entity Bean的Home接口中 create操作不会导致在数据库中插入记录,只会创建一个Entity Bean 类的对象。

汇博通文档借阅管理组织系统软件使用使用说明

汇博通文档借阅管理系统使用说明书 汇博通知识管理系统的属性管理,实际上已提供了借阅与归还功能,但那是针对每一份文件 或档案而言的。 这里,为客户提供一款专门用于文档的借阅与归还的软件,不但可办理一份文件的借阅或归 还手续,只要有需要,也可批量办理借阅与归还,另外,还提供了与借阅有关的一系列统计 报表。 发放功能与借阅类似,所不同的只是发放不必归还,如将购买的资料、图书发放给职员学习 等。 注:借阅与归还模块的操作,需要获得以下三种权限中的一种: 系统管理员 归档授权(档案管理员) 编号授权(文件管理员) 与借阅与归还模块相关的系统参数的设置说明如下:

首页 汇博通主页的模块工具条上,有一个借阅与归还的按钮,单击它即进入借阅与归还首页。 借阅(发放) 前面已经介绍过,借阅与发放的区别在于,借阅需要归还,发放则不必归还,从某种意义上 来说,发放实际上已将所有权(或有条件的所有权)转移给接收者。 借阅界面包括左右两个子窗体,左侧子窗体用于显示可供借阅(发放)的文档,其上部有搜 索关键词输入框,输入相应关键词即可查找出可供借阅的相应文档,如果要借阅的文档已经 在操作者手上,并且,标注有条形码或电子标签,操作者可直接通过条码阅读器或电子标签

阅读器读取相应编码直接获取到该文档。 根据实际需要,通过点选左侧的复选框,选择具体文档,然后,通过点击两个子窗体中间的箭头,即可将选中的文档添加到右侧子窗体的列表中,即可直接办理借阅或发放手续。 可供借阅(发放)检索列表待选区。借阅(发放)选择勾选列表区。 可供借阅(发放) 输入文件名称、编号、责任者或主题词等属性,点击【检索】按钮进行查找,如下图: 勾选确定后点击该按钮,即可添加到已 选择列表区中。

武汉理工大学-操作系统实验报告

学 生 实 验 报 告 书 实验课程名称 操 作 系 统 开 课 学 院 计算机科学与技术学院 指导老师姓名 学 生 姓 名 学生专业班级 软件工程 2014 — 2015 学年 第 一 学期 学生学号 实验课成绩

实验课程名称:操作系统 实验项目名称Linux键盘命令和vi实验成绩 实验者专业班级组别 同组者实验日期年月日第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 掌握Linux系统键盘命令的使用方法。 二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等) Vi编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi。 1.进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: 例如:$ vi myfile 有一点要注意,在进入vi之后,是处于“命令行模式”,要切换到“插入模式”才能够输入文字。 2. 切换至插入模式编辑文件 在“命令行模式”下按一下字母“i”就可以进入“插入模式”,这时候就可以开始输入文字了。 3. Insert 的切换 处于“插入模式”,就只能一直输入文字,按一下“ESC”键转到”命令行模式”能够删除文字。 4. 退出vi及保存文件 在“命令行模式”下,按一下“:”冒号键进入“Last line mode”,例如: : w myfilename : wq (输入”wq”,存盘并退出vi) : q! (输入q!,不存盘强制退出vi) 三、主要实验工具、仪器设备及耗材 安装Linux系统的计算机一台。

第二部分:实验结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) 在整个过程中,最困难的就是记忆整个Vi命令。在查阅资料的情况下,这个问题得到了解决。 二、实验结果描述 1.进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面 图1 vi主界面 2.切换至插入模式编辑文件 在“命令行模式”下按一下字母”i”就可以进入”插入模式”。 3.退出vi及保存文件 在”命令行模式”下,按一下”:”冒号键进入”Last line mode”;输入w filename 将文章以指定的文件名filename保存;输入wq存盘并退出vi。 三、实验小结、建议及体会 这次实验让对Linux操作系统有了初步的了解,我掌握了一些Linux系统常用的命令。

武汉理工大学软件工程复习资料

第一章概述 1.软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它是包括程序(program),相关数据(data)及其说明文档(document) (1)程序是按事先设计的功能和性能要求执行的指令序列 (2)数据是使程序能正常操纵信息的数据结构 (3)文档是与程序开发,维护和使用有关的图文材料 2.软件的特点: (1)软件是一种逻辑实体,而不是具体的物理实体,具有抽象性 (2)软件的生产与硬件不同,在它的开发过程中没有明显的制造过程 (3)在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题 (4)依赖于计算机硬件系统 (5)软件的开发至今尚未完全摆脱手工艺的开发方式 (6)软件本身是复杂的(实际问题的复杂性,程序逻辑结构的复杂性) (7)软件成本相当昂贵 (8)相当多的软件工作涉及到社会因素 3.软件危机(software crisis)是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 4.软件危机包含两方面的问题:其一是如何开发软件,以满足不断增长、日趋复杂的需求;其二是如何维护数量不断膨胀的软件产品。 5.软件危机的主要表现: 质量:1. 软件产品的质量往往靠不住;2.软件常常是不可维护的;3.软件通常没有适当的文档资料;4.用户对“已完成的”软件系统不满意的现象 时间:5.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势;6.经常发生对软件开发成本和进度的估计常常很不准确 预算:7.软件成本在计算机系统总成本中所占的比例逐年上升 6.出现软件危机的主要原因一方面是与软件本身的特点有关,另一方面是与软件开发和维护的方法不正确有关。解决的办法:软件工程 7.(1)软件工程(software engineering)是将工程化的思想用于软件的开发和维护 (2)软件工程(software engineering)就是为了经济地获得可靠的且能在实际机器上有效运行的软件,而建立和使用完善的工程原理。 (3)软件工程(software engineering)是:(1)将系统化的、严格约束的、可度量的方法应用于软件的开发、运行和维护,即将工程化应用于软件。(2)在(1)中所述方法的研究 软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。 8.软件工程包括两方面内容:软件开发技术和软件项目管理。其中,软件开发技术包括软件开发方法学、软件工具和软件工程环境。软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。 9.软件工程包含四个关键元素:方法(methodologies)、语言(languages)、工具(tools)和过程

中间件技术

中间件技术 定义: 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯,是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。 中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。 中间件特点: ?满足大量应用的需要; ?运行于多种硬件和OS平台; ?支持分布式计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互功能; ?支持标准的协议; ?支持标准的接口。 由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。基于目的和实现机

制的不同,我们将平台分为以下主要几类: ?远程过程调用中间件(Remote Procedure Call) ?面向消息的中间件(MesSAge-Oriented Middleware) ?对象请求代理中间件(object RequeST Brokers) ?事务处理监控(Transaction processing monitors) 1、远程过程调用 远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。事实上,一个RPC应用分为两个部分:server和client。server 提供一个或多个远程过程;client向server发出远程调用。server和client 可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。它们通过网络进行通讯。 2、面向消息的中间件 MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。目前流行的MOM中间件产品有IBM的MQSeries、BEA的MessageQ等。 3、对象请求代理 对象请求代理(ORB)是对象总线,它在CORBA规范中处于核心地位,定义异构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间client/server关系的中间件。ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应,这些对象可以位于本地也可以位于远程机器。ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结果等。client对象并不知道同server对象通讯、激活或存储server对象的机制,也不必知道server对象位于何处、它是用何种语言实现的、使用什么操作系统或其他不属于对象接口的系统成分。 4、事务处理监控 事务处理监控(TPM)最早出现在大型机上,为其提供支持大规模事务处理

人力资源管理系统软件操作手册

XX集团—人力资源管理系统操作手册 目录 常用操作(新人必读) (2) 1.基础数据管理 ................................................................................................................... - 5 - 1.1组织架构 (5) 1.2职位体系 (8) 1.3职员维护 (11) 1.4结束初始化.................................................................................. 错误!未定义书签。 2.组织管理业务 ................................................................................................................. - 27 - 2.1组织规划 (27) 2.2人力规划 (33) 2.3组织报表 (38) 3.员工管理业务 ................................................................................................................. - 41 - 3.1员工状态管理 (41) 3.2合同管理 (41) 3.3后备人才管理 .............................................................................. 错误!未定义书签。 3.4人事事务 (52) 3.5人事报表 (59) 4.薪酬管理 ......................................................................................................................... - 69 - 4.1基础数据准备 (69) 4.2薪酬管理日常业务 (92) 4.3薪酬管理期末业务 (107) 4.4薪酬报表 (108)

武汉理工大学软件工程专业卓越工程师培养方案

软件工程专业“卓越工程师培养计划” 试点方案 二○一一年三月

目录 1. 专业基本情况 (4) 2. 实施卓越工程师培养计划的基础 (5) 2.1 人才需求环境 (5) 2.2 专业师资队伍 (5) 2.3 科学研究与教学研究 (7) 2.4 学生培养 (9) 2.5 校内实践教学基地 (11) 2.6 校外产学研合作培养基地 (11) 3. 试点规模及及培养模式 (13) 4. 本科阶段培养方案 (14) 4.1 培养目标和要求 (14) 4.2 知识体系的基本框架 (15) 4.3 课程体系设计及学分要求(3+1模式) (17) 5. 企业学习阶段培养方案 (26) 5.1 培养目标 (26) 5.2 企业培养计划 (26) 5.3 工程教育师资队伍 (27) 6. 工程硕士阶段培养方案 (29) 6.1 培养目标和要求 (29) 6.2 培养模式 (30) 6.3 课程体系设计及学分要求(1+1模式) (30) 7.质量保障与监控体系 (34) 7.1 组织管理 (34)

7.2 条件保障 (35) 7.3 质量保障 (36) 7.4 监控体系 (37) 7.5 建立学院与企业定期沟通的协商机制 (40) 7.6 学生校外学习期间相关要求及注意事项 (40) 附件1:武汉理工大学软件工程专业“卓越工程师培养计划”校企联合培养协议书 (42) 附件2:武汉理工大学软件工程专业校企联合培养基地、实习基地协议书43附件3:武汉理工大学软件工程专业“卓越工程师培养计划”专业培养标准及标准实现矩阵 (44) 附件4:武汉理工大学软件工程专业“卓越工程师培养计划”企业培养标准及标准实现矩阵 (53)

销售管理软件操作手册

前言 本《操作手册》内容是按该软件主界面上第一横排从左至右的顺序对各个功能加以介绍的,建议初学者先对第一章系统设置作初步了解,从第二章基础资料读起,回头再读第一章。该管理软件的重点与难点是第二章,望读者详读。 第一章系统设置 打开此管理软件,在主界面上的左上方第一栏就是【系统设置】,如下图所示: 点击【系统设置】,在系统设置下方会显示【系统设置】的内容,包括操作员管理、数据初始化、修改我的登录密码、切换用户、选项设置、单据报表设置、导入数据、数据库备份、数据库恢复、压缩和修复数据库、退出程序。下面分别将这些功能作简要介绍: 1.1操作员管理 新建、删除使用本软件的操作员,授权他们可以使用哪些功能。此功能只有系统管理员可以使用。 1.1.1 进入界面 单击【系统设置】,选择其中的【操作员管理】,画面如下:

1.1.2、增加操作员 单击【新建】按钮,画面如下: 输入用户名称、初始密码、选择用户权限,可对用户进行适当描述,按【保存】后就点【退出】,就完成了新操作员的添加,效果如下图。

1.1.3 删除操作员 选择要删除的操作员,单击【删除】按钮。 1.1.4 修改操作员 选择要修改的操作员,单击【修改】按钮,可对操作员作相应修改,修改后需保存。 1.1.5 用户操作权限 选择要修改的操作员,单击【修改】按钮,出现以下画面,点击【用户权限】栏下的编辑框,出现对号后点【保存】,该操作员就有了此权限。 1.2数据初始化 1.2.1进入界面 单击【系统设置】,选择其中的【数据初始化】,画面如下:

1.2.2数据清除 选择要清除的数据,即数据前出现对号,按【确定】后点【退出】,就可清除相应数据。 1.3 修改我的登录密码 1.3.1进入界面 单击【系统设置】,选择其中的【修改我的登录密码】,画面如下: 1.3.2密码修改 输入原密码、现密码,然后对新密码进行验证,按【确定】后关闭此窗口,就可完成密码修改。 1.4 切换用户 1.4.1进入界面 单击【系统设置】,选择其中的【切换用户】,画面如下:

武汉理工大学最有优势的特色专业

1、武汉理工大学最有优势的特色专业 武汉理工大学是一所工科类重点本科院校,拥有共14个最好专业(特色专业)。武汉理工大学动画、通信工程、材料科 学与工程、车辆工程、矿物加工工程、工业设计、机械工程及 自动化、轮机工程、船舶与海洋工程、车辆工程、国际经济与 贸易、土木工程、物流工程、工程力学等专业可以说是武汉理 工大学最有优势的特色专业了,这些专业为同类型高校相关专 业和本校的专业建设与改革起到示范带动作用。 2、哈尔滨理工大学优势专业排名 高分子材料与工程 机械设计制造及其自动化 信息与计算科学 金属材料工程 测控技术与仪器 计算机科学与技术 3、华东理工大学最有优势的特色专业 华东理工大学是一所工科类重点本科院校,拥有共12个最好专业(特色专业)。华东理工大学应用化学、过程装备与控制工程、化学工程与工艺、制药工程、高分子材料与工程、生物工程、社会工作、自动化、环境工程、信息管理与信息系统、新能源材料与器件、资源循环科学与工程等专业可以说是华东理工大学最有优势的

特色专业了,这些专业为同类型高校相关专业和本校的专业建设与改革起到示范带动作用。 昆明理工大学最有优势的特色专业 昆明理工大学是一所工科类普通本科院校,拥有共8个最好专业(特色专业)。 昆明理工大学冶金工程、建筑学、机械工程及自动化、矿物加工工程、信息管理与信息系统、电气工程及其自动化、水利水电工程、环境工程等专业可以说是昆明理工大学最有优势的特色专业了,这些专业为同类型高校相关专业和本校的专业建设与改革起到示范带动作用。 兰州理工大学优势专业排名 热能与动力工程 材料成型及控制工程 机械设计制造及其自动化 过程装备与控制工程 土木工程 自动化 北京理工大学优势专业排名 软件工程(设3个专业方向) 安全工程 地面武器机动工程 车辆工程 信息对抗技术 机械工程及自动化 武器系统与发射工程

全国软件工程专业大学排名前34强名单出炉.doc

2018年全国软件工程专业大学排名前34强 名单出炉 2018年全国软件工程专业大学排名前34强名单出炉 软件工程专业排名被评为A+等级的学校有: 1、清华大学 2、西安交通大学 3、武汉大学 4、上海交通大学 5、南京大学 6、东北大学 7、哈尔滨工业大学 8、东南大学 9、中山大学 软件工程专业排名被评为A等级的学校有: 吉林大学、中国科学技术大学、西安电子科技大学、大连理工大学、北京航空航天大学、华中科技大学、复旦大学、浙江大学、北京理工大学、电子科技大学、重庆大学、北京交通大学、四川大学、华南理工大学、东华理工大学、山东大学、西北工业大学、华东师范大学、新疆大学、同济大学、南京理工大学、南昌大学、东北师范大学、暨南大学、中国地质大学、沈阳工业大学、广东工业大学

软件工程专业排名被评为B+等级的学校有: 西北大学、厦门大学、武汉理工大学、湖南大学、四川师范大学、辽宁工业大学、北京邮电大学、安徽大学、江西师范大学、哈尔滨理工大学、华东交通大学、西南交通大学、哈尔滨工程大学、东华大学、南京邮电大学、西南石油大学、福州大学、华南师范大学、黑龙江大学、西华大学、华南农业大学、云南大学、湖南师范大学、华侨大学、南开大学、江西农业大学、成都理工大学、重庆邮电大学、中南大学、大连海事大学、华北电力大学、宁夏大学、大连交通大学、北京工业大学、浙江工业大学、中国矿业大学、长春理工大学、长春工业大学、杭州电子科技大学、福建师范大学、西安石油大学、西南科技大学、西安理工大学、太原理工大学、青岛大学、河海大学、广东外语外贸大学、深圳大学、河北大学、兰州交通大学、天津理工大学、北京工商大学、西安工业大学、长春大学 软件工程专业排名被评为B等级的学校有: 桂林电子科技大学、中国石油大学、苏州大学、山西大学、西南民族大学、大连民族学院、郑州大学、湖北工业大学、内蒙古工业大学、南华大学、南阳理工学院、辽宁工程技术大学、中北大学、西北师范大学、肇庆学院、天津师范大学、江西财经大学、成都信息工程学院、烟台大学、东莞理工学院、首都师范大学、湛江师范学院、五邑大学、河北工业大学、四川轻化工大学、浙江工商大学、天津科技大学、广西民族大学、北京信息工程学院、盐城工学院、西安科技大学、安徽工业大学、广东海洋大学、集美大学、南通大学、韶关学院、北京联合大学、泰山学院、广西工学院、南京信息工程大学、天津工业大学、惠州学院、河北科技大学、广东商学院、中国传媒大学、长安大学、平顶山学院、

武汉理工大学软件需求工程大作业人事管理系统需求分析

课程设计 2014——2015学年第1学期 课程名称 《软件需求工程》 论文题目 《XXX 企业人事管理系统》需求分析报 告及项目开发计划书 学院 计算机科学与技术学院 专业 软件工程 班级 姓名 指导教师 岑丽

目录 项目开发计划 1.引言 (3) 1.1编写目的 (3) 1.2背景 (3) 1.3定义 (3) 1.4参考资料 (3) 2.项目概述 (4) 2.1工作内容 (4) 2.2主要参加人员 (4) 2.3产品 (5) 2.3.1程序 (5) 2.3.2文件 (5) 2.3.3服务 (5) 2.3.4非移交的产品 (5) 2.4验收标准 (5) 2.5完成项目的最迟期限 (5) 2.6本计划的批准者和批准日期 (5) 3.实施计划 (6) 3.1工作任务的分解与人员分工 (6) 3.2接口人员 (6) 3.3进度 (6) 3.4预算 (7) 3.5关键问题 (7) 4.支持条件 (7) 4.1计算机系统支持 (7) 4.2需由用户承担的工作 (8) 4.3需由外单位提供的条件 (8) 5.专题计划要点 (8) 6.交付期限 (8) 软件需求规格说明书 1.引言 (9) 1.1编写目的 (9) 1.2文档约定 (9) 1.3预期的读者和阅读建议 (9) 1.4产品的范围 (10) 1.5参考资料 (10) 2.总体描述 (10)

2.1产品的前景 (10) 2.2产品的功能 (10) 2.3用户类和特征 (11) 2.4运行环境 (11) 2.5设计和实现上的限制 (11) 2.6假设和依赖 (11) 3.系统特性 (11) 3.1描述和优先级 (11) 3.2功能性需求 (12) 4.外部接口需求 (12) 4.1用户界面 (12) 4.2硬件接口 (13) 4.3软件接口 (13) 4.4通信接口 (13) 5.其它非功能需求 (13) 5.1性能需求 (13) 5.2安全设施需求 (14) 5.3安全性需求 (14) 5.4软件质量问题 (14) 5.5业务规则 (14) 5.6用户文档 (14) 6其它需求 (14) 附录 附录A:数据字典 (15) 附录B:分析模型 (16) 附录C:待确定问题的列表 (18) 感受和体会 感受和体会 (19)

中间件技术综述

中间件技术综述 摘要:介绍了中间件的产生与发展,详细阐述了中间件的定义、分类以及功能与作用。指出了中间件的优缺点,并分析了中间件技术的现状,最后介绍了中间件的应用前景和发展趋势。 关键词:统一软件开发平台、中间件技术 1 引言 随着Internet网络应用技术的发展,基于客户机/服务器(Client/Server)模式的系统设计方法己被广泛地应用于各种类型软件系统的设计与开发中。其编程方式改变了传统的应用程序设计和系统实现方式。为此人们提出了一种介于客户端和服务器端的软件--中间件(Middleware)。中间件是处于应用软件和系统软件之间的一类软件,是独立于硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件,是客户方与服务方之间的连接件,是需要进行二次开发的中间产品。 于是集软件复用、分布式对象计算、企业级应用开发等技术为一体的“基于中间件的软件开发”伴随产生,这种技术以软件架构为组装蓝图,以可复用软件构件为组装模块,支持组装式软件的复用,大大提高了软件生产效率和软件质量。 2 中间件技术 2.1 中间件的分类 由于中间件所包括的范围十分广泛,而目前对中间件还没有一个比较精确的定义。因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。基于不同中间件的目的和实现机制的不同,一般将中间件主要分为以下几类:远程过程调用中间件(remote procedure call middle-ware); 面向消息的中间件(message oriented middleware); 对象请求代理(object request broker); 事务处理监控(transaction processing monitor); 数据库中间件(database middleware); 专用中间件(proprietary middleware)。 其中,前3类中间件称为管道,它们可向上提供不同形式的通讯服务,包括

管理软件使用说明书

目录 1 软件介绍...................................................... 1 2 软件运行环境 ................................................. 1 3 软件安装步骤 ................................................. 1 4 软件卸载步骤 ................................................. 4 5 软件使用...................................................... 45.1、创建数据库.............................................................................................................................. 4 5.2、创建数据数据表................................................................................................................... 6 5.3、历史数据读取 ........................................................................................................................ 7 5.4、查看历史数据、通道信息.............................................................................................. 8 5.5、打印数据、曲线或图片输出 .................................................................................... 13 5.6、数据实时采集 .................................................................................................................... 15 6 软件使用中可能出现的问题与解决方法.................. 186.1、不出现对话框 .................................................................................................................... 18 6.2、数据库不能建立............................................................................................................... 18 6.3、U盘不能数据转存........................................................................................................... 18 6.4、U盘上没有文件 ................................................................................................................ 18 6.5、U盘数据不能导入计算机;...................................................................................... 18

中间件技术原理与应用课后习题(1-8章参考答案)

中间件技术原理与应用课后习题参考答案 S1.中间件产生背景及分布式计算环境 1.比较开放系统与分布式系统的异同。 分布式系统具备以下属性:远程性、并发性、异步性、异质性、自主性、联合性、伸缩性、发展性、移动性。 开放系统具备以下属性:开放的、集成的、灵活的、模块化的、可联合的、可管理的、满足服务质量需要、安全的、提供透明性。 2.简述开放系统的特性: 开放系统具有可移植性、可互操作性、可伸缩性、易获得性。 3.什么是互操作性,有哪几种层次的互操作性? 在一个由异质实体构成的网络环境中,当应用在网络的结点上运行时,它可以透明地动用网中其他结点上的资源,并借助这些资源与本结点上的资源共同来完成某个或某组人物,这种能力被称为互操作性。 有以下层次: Application-Collaboration-Application Transparency-Inter-operability- Transparency RPC-Inter-communication- RPC Comms-Inter-Connection- Comms 4.简述中间件产生的背景、概念、组成结构及核心技术。 定义:中间件是介于应用系统和系统软件之间的一类软件,它能使处于应用层中的各应用成分之间实现跨网络的协同工作。 组成结构:(1)执行环境软件(2)应用开发工具 核心技术:通信、资源管理、互操作性 5 .简述DCE的组成结构及其缺点。 DCE由分布式文件服务、安全服务、目录服务、时间服务、RPC、线程组成。 DEC的缺点:RPC设计不周,开发工具薄弱;性能差、适用系统少、适用困难;没有采用面向对象技术。 S2.面向对象中间件ODP 6.阐述面向对象的定义及其与面向过程的调用的区别。 面向对象的方法以一种更为直观的方法分析和构造系统,它将整个系统抽象并模型化,让人们能够更好地了解整个系统,使得在设计时就能发现其中可能存在的问题。 两者最大的区别是,在结构化的开发方法中,数据与功能室分离的,而在面向对象的开发方法中,数据与相关的功能是捆绑在一起的,更好地表示了系统中相对独立的对象。 7.简述ODP的关键技术。 观点和透明性。观点把对于一个系统的说明分成若干个不同的侧面;透明性屏蔽了由系统的分布所带来的复杂性,极大的减小了分布式标称的复杂性。 8.怎样理解ODP是元标准。 RM-ODP不仅是一个一般的标准,还是一个标准的标准,即规定了使用于开放式分布处理领域内的其他标准必须遵循的参考模型。 9.简述ODP的绑定模型。 ODP的绑定模型分为计算绑定模型和工程绑定模型。计算观点所描述的是,信息系统被分解成为在界面处交互的对象,以此来达到分布处理的目的;工程观点所描述的是,实现系统中分布式对象之间的交互所需的机制和手段。

东莞二期投标文件管理软件操作手册V2.0.0.3

投标文件管理软件(V2.0.0.3) 用 户 使 用 手 册 深圳市斯维尓科技有限公司 二〇一三年三月五日

目录 1引言 (3) 2 程序运行环境 (4) 3 程序安装 (4) 4 软件启动 (9) 5软件整体说明 (12) 6 软件操作说明 (15) 6.1导入查看招标文件 (15) 6.2新建投标文件 (16) 6.3投标文件的管理功能 (23) 6.4校对工程量清单 (29) 6.5转换投标文件 (30) 6.6 电子签章 (32) 6.7生成投标文件 (34) 6.8查看数字签名信息 (41) 7 程序卸载 (42)

1引言 编写本手册的主要目的是为东莞市建设工程交易中心电子评标系统的投标文件管理软件的使用提供帮助。 投标文件管理软件主要提供给投标单位使用。投标单位通过投标文件管理软件将工程招标文件的一些主要内容导出,根据招标要求制作投标文件;加入已经制作好的工程投标文件所包含的所有文档(包括:技术标文件、工程量清单、工程图纸以及其它文件等),并进行管理,对文件包进行CA数字签名以防篡改,并生成压缩加密的电子投标文件包的功能。 投标文件管理软件的使用总体流程如下图所示:

2 程序运行环境 ?硬件环境:CPU: P4 2GHZ 内存2G,硬盘80GB ?软件环境:Windows 2000/XP/Windows Server 2003 ?软件支持:OFFICE2007+PDF转换插件/OFFICE2010 ?网络环境:带宽10/100Mbps 3 程序安装 东莞市建设工程交易中心网站(https://www.wendangku.net/doc/0d10019488.html,/)上下载最新安装包,点击安装程序,安装程序引导用户进行系统安装,主要有以下步骤: 一、启动安装程序,进入安装系统欢迎界面。如下图:

武汉理工大学软件工程基础实验第五次实验报告

实验五UML系统分析与设计 ----UML建模案例 实验5-1 用例图设计 实验5-2 类和对象图设计 实验5-3 交互图设计 实验5-4 状态图设计 实验5-5 活动图设计 成绩评定表:

实验5-1 用例图设计 一、实验目的 掌握在EA中用例图的基本用法和使用技巧。 二、实验内容与要求 本实验给予某学校的网上选课系统的用例图的设计和实现。 需求描述如下: 某学校的网上选课系统主要包括如下功能:管理员通过系统管理界面进入,建立本学期要开设的各种课程、将课程信息保存在数据库中并可以对课程进行改动和删除。学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费。同样,通过业务层,这些操作结果存入数据库中。 分析: 本系统拟用三层模型实现:数据核心层、业务逻辑层和接入层。其中,数据核心层包括对于数据库的操作;业务逻辑层作为中间层对用户输入进行逻辑处理,再映射到相应的数据层操作;而接入层包括用户界面,包括系统登陆界面、管理界面、用户选择界面等。 本系统涉及的用户包括管理员和学生,他们是用例图中的活动者,他们的主要特征相似,都具有姓名和学号等信息,所以可以抽象出“基”活动者people,而管理员和学生从people统一派生。数据库管理系统是另外一个活动者。 系统事件: 添加课程事件: (1)管理员选择进入管理界面,用例开始。 (2)系统提示输入管理员密码。 (3)管理员输入密码。 (4)系统验证密码。 (5)A1密码错误 (6)进入管理界面,系统显示目前所建立的全部课程信息。 (7)管理员许恩泽添加课程。 (8)系统提示输入新课程信息。 (9)管理员输入信息。 (10)系统验证是否和已有课程冲突。 (11)A2 有冲突。 (12)用例结束。 其他事件:

中间件技术总结

中间件总结(软件体系结构与分布式对象技术)这门课程的名字叫做《中间件技术》,整个学期就讲了一章的内容,总共也就几十页,实际上就是Java课本上的第二十章,软件体系结构与分布式对象技术 如果你们的老师还是袁绍欣的话,老师上课有自己的风格,并不仅仅局限在书本上,更多的时候老师喜欢讲一些自己的认识和见解。上这门课其实也很有意思,老师有时候会天马行空,总之上课的时候应该是很轻松的,,老师的意思是,想传授给大家的是思想,而不是固定的什么知识。 然后是备战考试,,备战考试的话,实际上一天足矣,因为真的就这些内容,如果你将下面的内容都掌握了,考个80分是不成问题,但是要得95这样的高分,我看也并非易事。具体来说,考试只有三种题目(起码我这届和我上一届都是这样),简答题(11*5 )+ 画图题(3*5 )+ 论述题 (3*10 )= 100 。简答题和画图题都是书上的知识,而后30分就是考你对中间件和分布式的真正理解了。主要的知识点就是下面的内容,我整理出来给大家,但是并不是希望大家就是考前一天把它背下来,然后考后一天就全部忘光了。 我希望大家能够真正去理解中间件是什么,去理解分布式对象技术,那么,我的目的就达到了,同时,我觉得老师教学的目的也达到了。从以往的考试来看,,,打小抄的同学数量绝对不占少数,不管男生还是女生,,这种现象非常严重,,,我觉得真的没有必要,,但是现在大学考试的趋势就是这样,我也管不了,我只是希望大家摸着自己的良心,堂堂正正去考一场试。。。 你的学长:BIGBALLON

1. 软件结构体系的含义和主要类型有哪些? 含义:软件结构体系是具有一定的软件结构化元素以及它们相互关系的集合。 主要类型:构成角度:构件和它们之间的调用关系 开发过程角度:概念结构和物理结构 运行角度:静态结构和动态结构 部署角度:集中式结构和分布式结构 2. C/S 和 B/S 各自都有哪些优点和缺点? Client/Server (客户端/服务器) 特点:必须在客户端安装数据库客户端,并且需要一定的局域网络带宽满足通信 优点:开发容易,部署简单,执行速度快,界面表现形式丰富 缺点:维护困难 Browser/Server (浏览器/服务器) 特点:这种结构,服务器端部署Web服务,应用服务和数据库服务。使用Web服务来响应用户的请求 优点:维护扩展方便 缺点:开发部署复杂,执行速度比C/S慢,界面表现形式不及C/S丰富 3. 软件客户端都有哪些主要类型,富客户端中的Ajax有何特点,都有哪些富客户端产品? a. 胖客户端( C/S ),瘦客户端( B/S ),富客户端( RIA ,Rich Internet Application ) b. Ajax (Asynchronous Javascript And XML,异步JavaScript和XML ) 的特点: 能够异步地向服务器提交请求,用户无须等待浏览器返回就可以继续浏览器其他操作。 (百度中输入一个词,会出现下拉列表,详见书本) c. d. 富客户端产品:微软的Silverlight/WPF Adobe的Flex Sun的JavaFX 开源社区的Laszlo 4. 分布式软件系统的含义,它的特点是什么? 含义:分布式软件系统就是将物理上分散的独立构件或系统,在使用逻辑上统一起来,相互合作来共同完成任务。 特点:物理上独立,逻辑上统一

相关文档
相关文档 最新文档