ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:310.10KB ,
资源ID:7264187      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7264187.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SOA分析报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SOA分析报告.docx

1、SOA分析报告 SOA分析报告1引言1.1编写目的SOA架构作为炙手可热的技术,如何应用到企业的IT系统和商业流程之中、并给企业带来直接的经济效益,一直备受国内外企业管理者的高度关注和推崇。本文最终目的是对SOA的利弊进行分析,分析SOA项目技术上的可行性,以保证今后项目的顺利进行。1.2背景测试一背景:a. 被测软件为SOA架构的一种,应用weservice制作的加减运算,通过中间层对由调用程序对web服务的调用。b.本测试有信息部提出测试,测试环境:windows xp2, .NET2005测试二背景:a. 被测软件名称:扫描码系统b公司业务拓展的需要,要新开一家仓库,但是公司的内网是不能

2、对外开放的,这就用到了我们今天所测试的SOA架构的webservice.通过我们的中间接口来直接与外网相连。保障公司内部系统的安全。下面我们举其中的一段代码。1.3SOA的定义SOA即面向服务的体系结构(service-oriented architecture,SOA),是指为了解决在inernet环境下业务集成的需要,通过连接能完成特定任务的独立功能实现的一种软件系统架构。具体上说它是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的

3、服务可以以一种统一和通用的方式进行交互。1.4SOA的基础结构要运行,管理SOA应用程序,企业需要SOA基础,这是SOA平台的一个部分。SOA基础必须支持所有的相关标准,和需要的运行时容器。WSDL,UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务;UDDI用来注册和查找服务;而 SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。 2 SOA的测试测试一2.1 测试概要:先创建一个Web服

4、务,此Web 服务即为我们所定义的中间接口,是SOA的主要服务所在。然后我们再创建调用程序对此服务进行调用。2.2 创建Web服务首先,打开VS.Net 2005, 按Ctrl+Shift+N(或者打开“文件-新建-项目”),选择“ASP.NET Web服务”。生成WebService默认文件是Service1.asmx。查看Service1.asmx.cs代码,你会发现VS.Net 2003已经为Web Service文件建立了缺省的框架。原始代码为:/代码1using System;using System.Web;using System.Web.Services;using Syste

5、m.Web.Services.Protocols;WebService(Namespace = http:/tempuri.org/)WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)public class Service : System.Web.Services.WebService public Service() /Uncomment the following line if using designed components /InitializeComponent(); WebMethod public str

6、ing HelloWorld() return Hello World; 直接使用“WEB 服务示例”,我们先看一下最简单的Web Service是什么样子的。直接按F5编译查看效果。再点击“调用”按钮,就可以看到用XML格式返回的Web Service结果(如图4)。说明我们的Web Service环境没有问题,而且还初步接触了一下最简单的Web Service。(图4)2、创建一个简单带有功能的Web Service网上有很多例子都是计算a+b=sum和显示问候语的,所以我们也来练习一下。我们建立一个整数加法和显示西部E网问候语的Web Service的例子,然后我们在下一节练习如何调用它

7、。另外:WebMethod和WebService都有一个Description属性,功能就是描述一下服务功能,具体方法可见: WebMethod(Description=计算a+b=sum的功能)和 WebService (Namespace=, Description = 用 VS.NET 开发一个 Web Service 实例)WebMethod(Description=计算a+b=sum的功能)public int Add(int a,int b)return a+b; WebMethod(Description=显示问候语的功能) public string Show(string y

8、ourname) return 西部E网 +欢迎+yourname; (代码3)运行后显示的结果如图5,具体的操作和测试方式就不细说了,和上面的HelloWorld差不多。如果测试正确性,可以输入“http:/localhost:1406/WebSite1/Service.asmx”(如图(图5)(图6)3、用ASP调用Web Service 如果要用ASP来调用WevService,就一定要使用SOAP Toolkit或者XMLHTTP, 使用SOAP Client需要专门安装SOAP Toolkit,这对客户端来说不具有通用性,因此我们就学习使用XML来进行对WebService的调用。%

9、Set objHTTP = Server.CreateObject(MSXML2.XMLHTTP)Set xmlDOC =Server.CreateObject(MSXML.DOMDocument)strWebserviceURL = http:/localhost:1406/WebSite1/Service.asmx?op=Add 设置参数和值strRequest = a=5&b=6objHTTP.Open POST, strWebserviceURL, False设置Content-Type很重要objHTTP.SetRequestHeader Content-Type, applicat

10、ion/x-www-form-urlencodedobjHTTP.Send(strRequest)bOK = xmlDOC.load(objHTTP.responseXML)查看状态值if objHTTP.Status=200 thenxmlStr = xmlDOC.xmlxmlStr = Replace(xmlStr,<,1,-1,1)Response.Write xmlStrelseResponse.Write objHTTP.Statu&Response.Write objHTTP.StatusTextend if%代码4)注意:代码中的“http:/localhost:1406/

11、WebSite1/Service.asmx?op=Add”是在第2节中其中“计算a+b=sum功能”的Web Service地址。以上代码在本地测试都没有问题(在部署webservice的本地机器上测试的),然而把strWebserviceURL = http:/localhost/WebService1/Service1.asmx/Add改为部署在其他机器上的WebService时,却出了问题,结果一直是返回500错误,即objHTTP.Status一直都为500。原因在于.Net Framework1.1默认不支持HttpGet和HttpPost。如果修改webservice里的web.c

12、onfig增加上代码5后,上代码就可以调用远程机器上的WebService了。 4、用VBScript调用Web Service 大家都清楚,其实VB、ASP、VBScript的语法和代码都及其相似,其实写出来他们其中任何一个都能出来另外几个。Set objHTTP = CreateObject(MSXML2.XMLHTTP)Set xmlDOC =CreateObject(MSXML.DOMDocument)strWebserviceURL = http:/localhost:1406/WebSite1/Service.asmx?op=Add 设置参数和值strRequest = a=2&b

13、=3objHTTP.Open POST, strWebserviceURL, False设置Content-Type很重要objHTTP.SetRequestHeader Content-Type, application/x-www-form-urlencodedobjHTTP.Send(strRequest)bOK = xmlDOC.load(objHTTP.responseXML)查看状态值,这里是用MsgBox的方式显示的,你可以根据自己的需要用其他方式显示 msgBox objHTTP.Statusmsgbox objHTTP.StatusTextobjHTTP.Status=200

14、,这里就可以处理返回的xml片段了如果需要,可以替换返回的xml字符串当中的<和>xmlStr = xmlDOC.xmlxmlStr = Replace(xmlStr,<,1,-1,1)msgbox xmlStr代码6)5、用ASP.Net调用Web Service在VS.Net 2005中新建窗体(我这里使用的C#),我这里的文件是WebForm1.aspx,编辑WebForm1.aspx.cs代码。这里我们之举对Add()函数接口的调用和调用HelloWord()的方法,其它类似。加进去一个lable控件。using System;using System.Collect

15、ions.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace WindowsApplication1 public partial class Form1 : Form public Form1() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) localhost.Service s =

16、 new WindowsApplication1.localhost.Service(); MessageBox.Show(s.HelloWorld(); public class myApp public static void main() localhost.Service csrv=new WindowsApplication1.localhost.Service(); Console.WriteLine(csrv.Add(11,33);=0,csrv.Add(33,11); private void lbl1_Click(object sender, EventArgs e) loc

17、alhost.Service csrv = new WindowsApplication1.localhost.Service(); this.lbl1.Text = csrv.Add(33, 11).ToString(); 其中我们执行后点击labl控件会显示出我们调用的值44。即调用成功。测试二2.5 公司内部的扫描码系统(由于关于公司机密,部分内容不能泄漏!)第一步:建立一个webservice,代码如下Imports System.WebImports System.Web.ServicesImports System.Web.Services.ProtocolsImports Sys

18、tem.Data.SqlClientImports System.Data.SqlClient.SqlDataReaderImports System.Data _ _ _Public Class Service Inherits System.Web.Services.WebService Dim strconn As String = User ID=missql;Password=hello;database=barcode;Data Source=BC-SERVER _ Public Function InsertBarcode(ByVal sBar As String, ByVal

19、yearweek As Long, ByVal Prod As String, ByVal prod_type As String) As Boolean Dim sDateTime As String Dim cn As SqlConnection = New SqlConnection(strconn) Dim sql As String = p_checkrule & sBar & , & Prod & cn.Open() Dim comm As SqlDataAdapter = New SqlDataAdapter(sql, cn) Dim dt As DataTable = New

20、DataTable comm.Fill(dt) Dim da As DataTable = New DataTable For Each r As DataRow In dt.Rows If r(0).ToString ok Then MsgBox(条形码 & sBar & 不符合规则!) InsertBarcode = False Exit Function End If Next Dim sql1 As String = Select getdate() as dt Dim comm1 As SqlDataAdapter = New SqlDataAdapter(sql1, cn) com

21、m1.Fill(da) sDateTime = Format(da.Rows(0)(dt), yyyymmddhhmmss) Dim sql2 As String = select rtrim(curr_state) as curr_state1,* from barcode_main where barcode = & sBar & Dim comm2 As SqlDataAdapter = New SqlDataAdapter(sql2, cn) comm2.Fill(da) If da.Rows.Count 0 Then If da.Rows(0)(curr_state1).ToStri

22、ng 00 Then MsgBox(条形码 & sBar & 已存在且非新生成状态!) InsertBarcode = False Exit Function Else Dim sql3 As String = UPDATE BARCODE_MAIN SET CURR_STATE = -1, T3_PRINTED = 1, TDATE = & Left(sDateTime, 8) & , TTIME = & Right(sDateTime, 6) & WHERE BARCODE = & sBar & Dim comm3 As SqlCommand = New SqlCommand(sql3,

23、cn) comm3.ExecuteNonQuery() InsertBarcode = True Exit Function End If End If Dim sql4 As String = insert into barcode_main (year_week, prod, barcode, sord, curr_state, product_type, tdate, ttime, curr_whs, curr_loc, t3_printed) & _ values ( & yearweek & , & Prod & , & sBar & ,4,-1, & prod_type & , &

24、 Left(sDateTime, 8) & , & Right(sDateTime, 6) & ,D1,-1,1) Dim comm4 As SqlCommand = New SqlCommand(sql4, cn) comm4.ExecuteNonQuery() InsertBarcode = True End FunctionEnd Class然后我们在客户段用以下代码进行调用,我们的调用环境是VB6.0Public Function InsertBarcode(sBar As String, yearweek As Long, Prod As String, prod_type As S

25、tring) As BooleanDim cc As New MSSOAPLib.SoapClientcc.mssoapinit webservice地址(关于公司机密不能泄漏)InsertBarcode = cc.InsertBarcode()End Function测试结果调用成功。速度稍慢,不过还可以满足要求。并且极大的保证的公司的系统安全,给我们的编程工作带来了极大的方便。3 SOA的测试评论优点3.1可从企业外部访问由测试可以知道,我们可以直接利用这种中间接口来调用程序,其实这种程序也就是我们所说的面向服务的接口。通常被称为业务伙伴的外部用户也能像企业内部用户一样访问相同的服务。华东

26、路仓库也是一样。我们可以基于SOAP协议和XML语言来直接从外网对公司的数据库进行调用,而且可以保障内部系统的安全。3.2 随时可用当有服务使用者请求服务时,SOA要求必须有服务提供者能够响应。大多数SOA都能够为门户应用之类的同步应用和B2B之类的异步应用提供服务。同步应用对于其所使用的服务具有很强的依赖性。 许多同步应用通常部署在前台,其最终用户很容易受到服务提供者短缺的影响。很多情况下,同步应用利用分布式服务提供者,这样可以响应更多的用户请求。但是,随着提供特定服务功能的服务器数量的增长,出现短缺的可能性也呈指数级上升。 相比之下,异步应用要更为稳健,因为其采用队列请求设计,因此可以容许

27、出现服务提供者短缺或迟滞的情况。异步应用大多数情况下部署在后台,用户通常不会觉察到短暂的短缺。大部分情况下异步应用能够稳健应对短时间短缺,但是长时间短缺则会引发严重问题。在服务短缺解决、队列引擎将罕见的大量工作推到共享的应用资源中时,可能会出现队列溢出甚至服务死锁。 服务使用者要求提供同步服务时,通常是基于其自身理解或使用习惯。在多数情况下,采用异步模型可以达到同样的效果,但更能够体现SOA的最佳特性。 当然,并不是所有情况下都应当采用异步设计模式。但大多数情况下,异步消息可以确保系统在不同负荷下的伸缩性,在接口响应时间不是很短时尤其如此。3.3 可以跨语言调用由测试一我们可以看到,可以用不同

28、的语言对SOA架构的webservice进行调用,你可以用任何你喜欢的语言进行编程,此编程接口只负责和服务端数据库的交换,尔不属于客户端程序,所以这就给编程人员带来了极大的方便。我们不得不说webservice 是一个进步。3.4 可以更好的支持商业流程有以上测试我们很容易发现SOA结构就是把服务定义为专门的接口。面向不同的服务这种接口很容易被修改。而不需要在源程序上做太大的改动。我们只需要改动这些接口即可。这给企业的日益频繁的新需要提供了良好的修改方式。可以很好的提升效率,加快开发速度、降低在客户化和人员技能的投入。3.5 有利于公司业务的集成传统的应用集成方法(点对点集成、企业消息总线或中间件的集成(EAI)、基于业务流程的集成)都很复杂、昂贵,并且不灵活。这些集成方法难于快速适应基于企业现代业务变化不断产生的需求。基于面向服务架构 (SOA) 的应用开发和集成可以很好的解决其中的许多问题。SOA 描述了一套完善的开发模式来帮助客户端应用连接到服务上。这些模式定制了系列机制用于描述服务、通知及发现服务、与服务进行通信。不同于传统的应用集成方法,在 SOA 中,围绕服务的所有模式都是以基于标准的技术实现的。大部分的通信中间件系统,如 RPC、CORBA、DCOM、EJB 和 RMI,也同样如此。可是它们的实现都不是很

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1