跨平台应用集成设计

在设计应用程序时,最困难的部分是将应用程序与现有应用程序集成。如果幸运的话,目标应用程序也是基于ASP.NET构建的,但大多数情况下,这些应用程序是用不同的语言创建的,并且使用了不同的框架。本文提出了一种解决这个问题的设计。

高级设计概念

高级设计包括一个集成层,该层实现了从ASP.NET到RAILS、PHP、ASP的通信。这个集成层还与ASP.NET共享数据,RAILS、PHP、ASP和Java。这个设计也可以通过更改扩展到用其他语言创建的其他应用程序。

详细技术设计

集成层的详细设计由两个主要部分组成:

ASPNETIntegrationServer:这是使用ASP.NET页面实现的,它从ASP.NET应用程序获取数据,并通过调用相应的监听器将其传递给目标应用程序,如图中所示。

监听器

- ASPListener(此块位于ASP Web服务器框中)

- 步骤1:读取ASP.NET页面传递的数据

- 步骤2:在ASP中处理请求和自定义业务逻辑

- 步骤3:将结果返回给ASP.NET页面

- PHPListener(此块位于PHP Web服务器框中)

- 步骤1:读取ASP.NET页面传递的数据

- 步骤2:在PHP中处理请求和自定义业务逻辑

- 步骤3:将结果返回给ASP.NET页面

- RailsListener(此块位于RAILS Web服务器框中)

- 步骤1:读取ASP.NET页面传递的数据

- 步骤2:在Ruby中处理请求和自定义业务逻辑

- 步骤3:将结果返回给ASP.NET页面

- JavaListener(此块位于JavaTomcat Web服务器框中)

- 步骤1:读取ASP.NET页面传递的数据

- 步骤2:在Java中处理请求和自定义业务逻辑

- 步骤3:将结果返回给ASP.NET页面

使用代码

以下是ASPNETIntegrationServer.aspx.cs中调用监听器的逻辑,通过HTTPGet传递值,然后重定向到页面:

string strRequest; strRequest = "Value to Pass"; // 调用asplistener的代码 Response.Redirect("http://aspserver/PHPListener.php?aspNetPassedValueByGet=" + strRequest); // 调用phplistener的代码 Response.Redirect("http://phpserver/ASPListener.asp?aspNetPassedValueByGet=" + strRequest); // 调用railslistener的代码 Response.Redirect("http://railsserver/RailsListener/integrate?aspPassedValue=" + strRequest);

以下是在代码中调用监听器并读取值的逻辑:

public string TinyEAIPostRequest(string strURL, string strRequest) { HttpWebResponse objHttpWebResponse = null; UTF8Encoding encoding; string strResponse = ""; HttpWebRequest objHttpWebRequest; objHttpWebRequest = (HttpWebRequest)WebRequest.Create(strURL); objHttpWebRequest.ContentType = "application/x-www-form-urlencoded"; objHttpWebRequest.PreAuthenticate = true; objHttpWebRequest.Method = "POST"; // 准备请求流 if (strRequest != null && strRequest != string.Empty) { encoding = new UTF8Encoding(); Stream objStream = objHttpWebRequest.GetRequestStream(); Byte[] Buffer = encoding.GetBytes(strRequest); // 发送请求 objStream.Write(Buffer, 0, Buffer.Length); objStream.Close(); } objHttpWebResponse = (HttpWebResponse)objHttpWebRequest.GetResponse(); encoding = new UTF8Encoding(); StreamReader objStreamReader = new StreamReader(objHttpWebResponse.GetResponseStream(), encoding); strResponse = objStreamReader.ReadToEnd(); objHttpWebResponse.Close(); objHttpWebRequest = null; return strResponse; }

测试PHP添加示例

这是一个简单的加法示例,使用PHP Listener,其中业务逻辑用PHP编写,将ASP.NET传递的值相加,然后将结果返回给ASP.NET应用程序。以下是执行此操作所执行的内部步骤:

ASP.NET应用程序获取输入

调用TinyEAIPostRequest函数,传递URL和输入

调用PHPListener,传递要添加的值

PHPListener接收请求

这里进行自定义业务逻辑 - 为了简单起见,只是将数字相加

PHPListener返回结果

ASP.NET将结果显示给用户

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485