计算机科学技术学报 ›› 2020,Vol. 35 ›› Issue (1): 161-178.doi: 10.1007/s11390-020-9694-z

• • 上一篇    下一篇

SmartPipe:基于计算反射的工业应用互操作

Su Zhang1, Hua-Qian Cai1, Member, CCF, Yun Ma2, Member, CCF, ACM, IEEE, Tian-Yue Fan3, Ying Zhang4,*, Member, CCF, ACM, IEEE, Gang Huang1,*, Member, CCF, ACM, IEEE   

  1. 1 Key Laboratory of High-Confidence Software Technology(Peking University), Ministry of Education Beijing 100871, China;
    2 School of Software, Tsinghua University, Beijing 100084, China;
    3 Hengyi Petrochemicals CO., LTD., Hangzhou 311215, China;
    4 National Engineering Research Center for Software Engineering, Peking University, Beijing 100871, China
  • 收稿日期:2019-05-07 修回日期:2019-09-15 出版日期:2020-01-05 发布日期:2020-01-14
  • 通讯作者: Ying Zhang E-mail:zhang.ying,hg@pku.edu.cn
  • 作者简介:Su Zhang is a Ph.D. candidate in Key Laboratory of High-Confidence Software Technology and School of Electronics Engineering and Computer Science, Peking University, Beijing. His current research interests include system software and software engineering.
  • 基金资助:
    This work was supported by the National Key Research and Development Program of China under Grant No. 2018YFB1004800, the National Natural Science Foundation of China under Grant No. 61725201, Beijing Municipal Science and Technology Project under Grant No. Z171100005117002, and Tianjin Municipal People's Government Port Service Office (Project on Cross-Border E-Commerce Big Data Analysis and Display System).

SmartPipe: Towards Interoperability of Industrial Applications via Computational Reflection

Su Zhang1, Hua-Qian Cai1, Member, CCF, Yun Ma2, Member, CCF, ACM, IEEE, Tian-Yue Fan3, Ying Zhang4,*, Member, CCF, ACM, IEEE, Gang Huang1,*, Member, CCF, ACM, IEEE        

  1. 1 Key Laboratory of High-Confidence Software Technology(Peking University), Ministry of Education Beijing 100871, China;
    2 School of Software, Tsinghua University, Beijing 100084, China;
    3 Hengyi Petrochemicals CO., LTD., Hangzhou 311215, China;
    4 National Engineering Research Center for Software Engineering, Peking University, Beijing 100871, China
  • Received:2019-05-07 Revised:2019-09-15 Online:2020-01-05 Published:2020-01-14
  • Contact: Ying Zhang E-mail:zhang.ying,hg@pku.edu.cn
  • About author:Su Zhang is a Ph.D. candidate in Key Laboratory of High-Confidence Software Technology and School of Electronics Engineering and Computer Science, Peking University, Beijing. His current research interests include system software and software engineering.
  • Supported by:
    This work was supported by the National Key Research and Development Program of China under Grant No. 2018YFB1004800, the National Natural Science Foundation of China under Grant No. 61725201, Beijing Municipal Science and Technology Project under Grant No. Z171100005117002, and Tianjin Municipal People's Government Port Service Office (Project on Cross-Border E-Commerce Big Data Analysis and Display System).

随着以云计算、大数据、人工智能、物联网、5G为代表的新一代信息技术的迅猛发展,工业领域正在进入智能制造的新时代。工业应用的互操作是实现智能制造的关键要求之一,然而实现遗产工业应用的互操作具有以下挑战:1)通过异构通信协议传输的底层数据语义信息不足,2)在源代码缺失的情况下复杂的业务逻辑难以被理解,3)对应用的重新设计成本较高且存在潜在风险。为了解决这些问题,本文提出了一种基于计算反射实现工业应用互操作的方法SmartPipe。SmartPipe可以在没有源代码的情况下将工业应用的现有功能开放为API,同时允许应用本身保持不变。
计算反射是计算系统提供对其自身的精确自描述的能力,它要求系统的状态与行为(基层实体)和系统自述(元层实体)之间具有双向因果关联,即基层实体被具化为元层实体且对元层实体的操纵会反映至基层实体。计算反射在实现时可以分为以系统的状态为基层实体的结构反射和以系统的行为为基层实体的行为反射,通常来说行为反射的实现相对于结构反射来说更为困难。在本文中,由于需要对工业应用的行为进行调整,因此本文提出的SmartPipe是基于行为反射进行实现的。
简单来说,对应用程序实现行为反射就是构建应用程序的行为和一组可操作的数据之间的具有双向因果关联的映射。首先,本文提出了一个应用运行时行为模型作为工业应用的自描述,其中包含用于描述应用执行行为的执行变化模型和用于描述执行行为所需数据的数据变化模型。在此基础上,本文设计了一个计算反射框架以支持构造应用运行时行为模型(即具化过程),生成对应于应用特定功能的模型片段(即操纵过程)并将模型片段转换为封装了目标功能的API(即反映过程),从而使得开发者可以在不进行源代码级别应用重构的前提下调整工业应用的行为。最后,本文在一个真实的卷绕机(用于生产涤纶纺丝的设备)控制应用上验证了SmartPipe的有效性,结果表明SmartPipe相比传统方法而言更适用于工业场景。

关键词: 计算反射, 运行时模型, 互操作性, 工业应用, API生成

Abstract: With the advancement of new information technologies, a revolution is being taken place to bring the industry into a new era of intelligent manufacturing. One of the key requirements of intelligent manufacturing is the interoperability of industrial applications. However, it is challenging to realize the interoperability for legacy industrial applications due to 1) the deficient semantic information of data transmitted over heterogeneous communication protocols, 2) the difficulty to understand the complex process of business logic with no source code, and 3) the high cost and potential risk of reengineering the applications. To address the issues, in this paper, we propose an approach named SmartPipe to exposing existing functionalities of an industrial application as APIs without source code while simultaneously allowing the application to remain unchanged. We design a behavioral runtime model (BRM) as the self-representation of the industrial applications, based on which a computational reflection framework is designed to flexibly construct the model and generate APIs that encapsulate specific functionalities. We validate SmartPipe on a real industrial application that controls the spin-draw winding machine. Results show that our approach is effective and more suitable for industrial scenes compared with traditional approaches.

Key words: computational reflection, runtime model, interoperability, industrial application, API generation

[1] Shipp S S, Gupta N, Lal B et al. Emerging global trends in advanced manufacturing. Technical Report, Institute for Defense Analyses, 2012. https://www.nist.gov/sites/default/files/documents/2017-/05/09/IDA-STPI-report-on-Global-Emerging-Trends-inAdv-Mfr-P-4603_Final2-1.pdf,August 2019.
[2] Lin S W, Miller B, Durand J et al. Industrial Internet reference architecture. Technical Report, Industrial Internet Consortium, 2015. https://www.iiconsortium.org/pdf/SHIWAN%20LIN_IIRA-v1%208-release-20170125.pdf,Nov.2019.
[3] Bechtold J, Lauenstein C, Kern A et al. Industry 4.0-The capgemini consulting view. Technical Report, Capgemnini Consulting, 2014, 31. https://www.capgemini.com/consulting/wp-content/uploads/sites/30/2017/07/capgemini-consulting-industrie-4.000.pdf,Nov.2019.
[4] Maes P. Concepts and experiments in computational reflection. ACM SIGPLAN Notices, 1987, 22(12):147-155.
[5] Feldhorst S, Libert S, Ten Hompel M et al. Integration of a legacy automation system into a SOA for devices. In Proc. the 12th IEEE Int. Conf. Emerging Technologies and Factory Automation, September 2008, Article No. 110.
[6] Givehchi O, Landsdorf K, Simoens P et al. Interoperability for industrial cyber-physical systems:An approach for legacy systems. IEEE Trans. Industrial Informatics, 2017, 13(6):3370-3378.
[7] Tao F, Cheng J F, Qi Q L. IIHub:An industrial Internetof-Things hub toward smart manufacturing based on cyberphysical system. IEEE Trans. Industrial Informatics, 2018, 14(5):2271-2280.
[8] Queirós R. Kaang:A RESTful API generator for the modern web. In Proc. the 7th Symp. Languages, Applications and Technologies, June 2018, Article No. 1.
[9] Ed-Douibi H, Izquierdo J L C, Gómez A et al. EMF-REST:Generation of RESTful APIs from models. In Proc. the 31st Annual ACM Symp. Applied Computing, April 2016, pp.1446-1453.
[10] Zhai J, Huang J J, Ma S Q et al. Automatic model generation from documentation for Java API functions. In Proc. the 38th IEEE/ACM Int. Conf. Software Engineering, May 2016, pp.380-391.
[11] Almonaies A A, Cordy J R, Dean T R. Legacy system evolution towards service-oriented architecture. In Proc. the 2010 Int. Workshop on SOA Migration and Evolution, March 2010, pp.53-62.
[12] Stroulia E, El-Ramly M, Sorenson P et al. Legacy systems migration in CelLEST. In Proc. the 22nd Int. Conf. Software Engineering, June 2000, Article No. 790.
[13] Stroulia E, El-Ramly M, Sorenson P. From legacy to web through interaction modeling. In Proc. the 18th Int. Conf. Software Maintenance, October 2002, pp.320-329.
[14] Canfora G, Fasolino A R, Frattolillo G et al. Migrating interactive legacy systems to web services. In Proc. the 10th European Conf. Software Maintenance and Reengineering, March 2006, pp.24-36.
[15] Canfora G, Fasolino A R, Frattolillo G et al. A wrapping approach for migrating legacy system interactive functionalities to service oriented architectures. Journal of Systems and Software, 2008, 81(4):463-480.
[16] Rodríguez-Echeverría R, Macías F, Pavón V M et al. Modeldriven generation of a REST API from a legacy web application. In Proc. the 9th International Workshop on ModelDriven and Agile Engineering for the Web, July 2013, pp.133-147.
[17] Jiang Y T, Stroulia E. Towards reengineering web sites to web-services providers. In Proc. the 8th European Conf. Software Maintenance and Reengineering, March 2004, pp.296-305.
[18] Baumgartner R, Gottlob G, Herzog M et al. Interactively adding web service interfaces to existing web applications. In Proc. the 2004 Symp. Applications and the Internet, January 2004, pp.74-80.
[19] Sneed H M, Wien A G. Wrapping legacy software for reuse in a SOA. Multikonferenz Wirtschaftsinformatik, 2006, 2:345-360.
[20] Sneed H M. Integrating legacy software into a service oriented architecture. In Proc. the 10th European Conf. Software Maintenance and Reengineering, March 2006, pp.3-14.
[21] Lewis G, Morris E, Smith D. Analyzing the reuse potential of migrating legacy components to a service-oriented architecture. In Proc. the 10th European Conf. Software Maintenance and Reengineering, March 2006, pp.15-23.
[22] Lewis G, Morris E, Smith D et al. Service-oriented migration and reuse technique (SMART). In Proc. the 13th IEEE Int. Workshop on Software Technology and Engineering Practice, September 2005, pp.222-229.
[23] Smith D. Migration of legacy assets to service-oriented architecture environments. In Proc. the 29th Int. Conf. Software Engineering, May 2007, pp.174-175.
[24] Inaganti S, Behara G K. Service identification:BPM and SOA handshake. BPTrends, 2007, 3:1-12.
[25] del Grosso C, di Penta M, de Guzman I G R. An approach for mining services in database oriented applications. In Proc. the 11th European Conf. Software Maintenance and Reengineering, March 2007, pp.287-296.
[26] Yeh D M, Li Y W, Chu W. Extracting entity relationship diagram from a table-based legacy database. Journal of Systems and Software, 2008, 81(5):764-771.
[27] Strobl S, Bernhart M, Grechenig T et al. Digging deep:Software reengineering supported by database reverse engineering of a system with 30+ years of legacy. In Proc. the 25th IEEE Int. Conf. Software Maintenance, September 2009, pp.407-410.
[28] Zhang Z P, Yang H J. Incubating services in legacy systems for architectural migration. In Proc. the 11th Asia-Pacific Software Engineering Conf., November 2004, pp.196-203.
[29] Zhang Z P, Liu R M, Yang H J. Service identification and packaging in service oriented reengineering. In Proc. the 17th International Conference on Software Engineering and Knowledge Engineering, July 2005, pp.620-625.
[30] Chen F, Li S Y, Yang H J et al. Feature analysis for serviceoriented reengineering. In Proc. the 12th Asia-Pacific Software Engineering Conf., December 2005, pp.201-208.
[31] Guo H, Guo C Y, Chen F et al. Wrapping client-server application to Web services for Internet computing. In Proc. the 6th Int. Conf. Parallel and Distributed Computing Applications and Technologies, December 2005, pp.366-370.
[32] Li S, Tahvildari L. JComp:A reuse-driven componentization framework for Java applications. In Proc. the 14th IEEE Int. Conf. Program Comprehension, June 2006, pp.264-267.
[33] Cuadrado F, García B, Dueñas J C et al. A case study on software evolution towards service-oriented architecture. In Proc. the 22nd Int. Conf. Advanced Information Networking and Applications-Workshops, March 2008, pp.1399-1404.
[34] Marchetto A, Ricca F. Transforming a Java application in an equivalent web-services based application:Toward a tool supported stepwise approach. In Proc. the 10th Int. Symp. Web Site Evolution, October 2008, pp.27-36.
[35] Marchetto A, Ricca F. From objects to services:Toward a stepwise migration approach for Java applications. Int. Journal on Software Tools for Technology Transfer, 2009, 11(6):427-440.
[36] Huang G, Liu T C, Mei H et al. Towards autonomic computing middleware via reflection. In Proc. the 28th Annual Int. Computer Software and Applications Conference, September 2004, pp.135-140.
[37] Huang G, Mei H, Yang F Q. Runtime software architecture based on reflective middleware. Science in China Series F:Information Sciences, 2004, 47(5):555-576.
[38] Albertini B, Rigo S, Araujo G et al. A computational reflection mechanism to support platform debugging in SystemC. In Proc. the 5th IEEE/ACM Int. Conf. Hardware/Software Codesign and System Synthesis, September 2007, pp.81-86.
[39] Albertini B, Rigo S, Araujo G. Computational reflection and its application to platform verification. Design Automation for Embedded Systems, 2012, 16(1):1-17.
[40] López P G, Fernández-Casado E, Angles C et al. Enabling collaboration transparency with computational reflection. In Proc. the 16th Int. Conf. Collaboration and Technology, September 2010, pp.249-264.
[41] Bellman K L, Nelson P R, Landauer C. Active experimentation and computational reflection for design and testing of cyber-physical systems. In Proc. the Poster Workshop at the 2014 Complex Systems Design & Management International Conference Co-Located with the 5th International Conference on Complex System Design & Management, November 2014, pp.251-262.
[42] Demers F N, Malenfant J. Reflection in logic, functional and object-oriented programming:A short comparative study. In Proc. the IJCAI'95 Workshop on Reflection and Metalevel Architectures and Their Applications in AI, August 1995, pp.29-38.
No related articles found!
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
[1] 周笛;. A Recovery Technique for Distributed Communicating Process Systems[J]. , 1986, 1(2): 34 -43 .
[2] 李万学;. Almost Optimal Dynamic 2-3 Trees[J]. , 1986, 1(2): 60 -71 .
[3] 冯玉琳;. Recursive Implementation of VLSI Circuits[J]. , 1986, 1(2): 72 -82 .
[4] 王选; 吕之敏; 汤玉海; 向阳;. A High Resolution Chinese Character Generator[J]. , 1986, 1(2): 1 -14 .
[5] 高庆狮; 张祥; 杨树范; 陈树清;. Vector Computer 757[J]. , 1986, 1(3): 1 -14 .
[6] 章萃; 赵沁平; 徐家福;. Kernel Language KLND[J]. , 1986, 1(3): 65 -79 .
[7] 王建潮; 魏道政;. An Effective Test Generation Algorithm for Combinational Circuits[J]. , 1986, 1(4): 1 -16 .
[8] 黄河燕;. A Parallel Implementation Model of HPARLOG[J]. , 1986, 1(4): 27 -38 .
[9] 唐同诰; 招兆铿;. Stack Method in Program Semantics[J]. , 1987, 2(1): 51 -63 .
[10] 闵应骅;. Easy Test Generation PLAs[J]. , 1987, 2(1): 72 -80 .
版权所有 © 《计算机科学技术学报》编辑部
本系统由北京玛格泰克科技发展有限公司设计开发 技术支持:support@magtech.com.cn
总访问量: