首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 171 毫秒
1.
周芯宇  陈伟  吴国全  魏峻 《软件学报》2022,33(9):3271-3296
REST API已成为访问和使用Web服务的重要途径, 为开发基于服务架构的应用系统提供了可复用接口. 但是, REST API的设计质量参差不齐, 因此有效、合理的设计指导规范对于规范和提高REST API设计质量具有现实意义和应用价值. 首先, 基于REST API的本质内涵, 建立了一个多维度、两层次的REST API设计指导规范分类体系RADRC (REST API design rule catalog), 并对当前主流的25条设计指导规范进行分类. 其次, 针对已有规范提出相应的检测方法, 并实现了REST API设计指导规范遵循情况的分析与检测工具RESTer. 最后, 使用RESTer开展REST API设计实证研究, 分析了APIs.guru收录的近2000个真实REST API的文档, 从中分析提取相应的REST API信息, 进一步检测并统计当前REST API的设计特征和设计指导规范遵循情况. 研究发现不同应用类别的REST API在资源和操作模式上存在差异, 使得不同类别REST API在设计规则和总体架构方面各有特点. 实证研究结果有助于深入了解当前REST API及其设计规则的特征、现状和不足, 对于提高REST API设计质量和改进设计指导规范具有实际意义.  相似文献   

2.
随着网络上发布的Web API服务越来越多,如何推荐给开发者用户感兴趣、信誉度高的Web API服务,以构建高质量高可信的软件服务系统,成为一个具有挑战性的研究问题。为此,提出一种基于用户使用历史与信誉评价的Web API服务推荐方法。计算用户使用历史记录与Web API之间的相似度,获得Web API的用户兴趣值。综合用户的Web API评分,调用Web API的Mashup服务的评价贡献和Alexa统计的Web API访问流量,获得Web API的信誉评价值。根据Web API的用户兴趣值以及信誉评价值,实现Web API的排名与推荐。实验结果表明,该方法推荐的Web API用户兴趣度DCG值高于SR-Based方法,服务信誉度DCG值高于UI-Based方法。  相似文献   

3.
随着Web服务的发展,如何从大量的Web服务实现方式中选择出一种适合自己的Web服务已经成为一种难题。文中从三种常用的Web服务:远程过程式调用(RPC)、面向服务的架构(SOA)以及表征状态转换(REST)出发,首先简要阐述了各自的特点以及Web服务的区别。然后从扩展性、灵活性和开销上对传统的RPC风格和REST风格进行了对比分析,发现REST更加简单而且有效,对服务的生产者可以降低创建服务的成本,对服务的消费者可以降低学习的曲线等诸多优势。最后认为REST采用的是一种新的思维,更加充分地利用了现行Web的特性,更加符合Web的设计初衷,并探讨了REST服务的未来发展,为Web服务架构的发展提供了一些方向。  相似文献   

4.
为了充分整合分布的高性能计算资源,本文提出一种面向科学计算的网格环境,旨在形成一个可统一管理和运行维护的虚拟的超级计算机资源,面向用户提供统一、易用、可靠的科学计算服务。面向科学计算的网格环境通过轻量级网格中间件SCE汇聚资源,支持作业的全局调度、数据的统一管理视图,面向用户提供命令行和网格门户两种使用方式,并提供编程接口供专业社区和学科平台二次开发使用,满足不同层次的用户需求。目前,面向科学计算的网格环境已经在中国科学院超级计算环境(ScGrid)中得到应用和用户认可。  相似文献   

5.
在嵌入式BSP测试过程中,为每一个测试产品和每一个开发团队都建立测试环境来进行本地测试,其代价非常昂贵。采用远程测试的方法可以降低测试代价,共享测试环境,有效地重用测试用例。Web服务是一种部署在Web上的对象,建立在以XML为主的、开放的Web规范技术基础上,具有平台无关性、互操作性、功能复用和安全通信特点。提出了一种嵌入式系统BSP远程测试框架,该框架分为测试中心服务和测试门户服务,分别采用了SOAP和REST两种风格的Web服务包装形式,用户可以通过统一的Web接口访问服务实现BSP的远程测试。  相似文献   

6.
Mashup是一种新型Web应用,指多种不同类型资源的组合重用。针对此,提出采用REST(Representational State Trans-fer)风格面向服务架构,结合JavaScript API、AJAX技术,实现分布式地理资源的Mashup,并构建了上海市绿地社会服务功能分析原型系统。研究表明,该方法可为用户提供良好的分布式地理资源在线聚合体验,更重要的是将简单地理处理资源组合为资源链完成复杂地理处理功能,节约了开发成本。  相似文献   

7.
在分析了传统SOAP—RPC式Web服务的局限性之后,简要介绍了REST,REST架构风格的Web服务及其优势,以及这种服务在GIS领域的应用,然后提出了基于REST架构风格的地理信息Web服务的整体框架.最后做了实例开发,以Visual Studio.NET,Sharp Map,Open Layers,SQL Server等软件作为开发环境。实现了REST风格的地理信息要素(fea.ture)务和简易的客户端程序。  相似文献   

8.
黄翀 《软件世界》2007,(17):40-41
REST的流行使得越来越多的框架开始支持REST,而历史的原因使得它们各自具有不同的特点。随着SOA的兴盛,Web服务也开始驶入了加速发展的快车道。2000年Roy Thomas Fielding博士一纸论文更是宣告了第二代Web Service的到来,REST—表述性状态转移,为我们构建下一代高性能、高可伸缩性、简单性、可移植性、可靠性的Web程序提供了一个架构风格上的准则。Web是简单的,Web更是可编程的,REST利用简单的HTTP、URI标准和XML语言构建起轻量级的Web服务,从而大幅度地提升了开发效率和程序性能。  相似文献   

9.
伴随着网络技术的快速发展,人类进入了以服务为基础的互联网时代。采用基于REST风格的服务,有效地解决了传统的以SOAP为基础的Web Services使用过于复杂,局限于POST方法,很少使用HTTP响应代码等方面的问题。本文设计一个基于REST的物联网应用系统开发模式,基于一个具有REST风格的物联网业务平台,将传感器节点等智能感知终端和感知数据看作资源,使用户可以采用Django框架来简便、快速地开发物联网应用。  相似文献   

10.
结合异步通信与持久性信息共享的思想,将共享存储引入到Web服务设计中,为Web服务的提供一种持久的、全局可访问的异步交互活动模式.分析结果表明,本文模型向Web服务提供了一种符合REST风格的异步交互活动模式.  相似文献   

11.
The cost savings introduced by Web services through code reuse and integration opportunities have motivated many businesses to develop Web APIs, with ever increasing numbers opting for the REST architectural style. RESTful Web APIs are decomposed in multiple resources, which the client can manipulate through HTTP interactions with well-defined semantics. Getting the resource in the desired state might require multiple client–server interactions, what we define as a RESTful conversation. RESTful conversations are dynamically guided by hypermedia controls, such as links. Thus, when deciding whether and how to use a given RESTful service, the client might not be aware of all the interactions which are necessary to achieve its goal. This is because existing documentation of RESTful APIs describes the static structure of the interface, exposing low-level HTTP details, while little attention has been paid to conceptual, high-level, modeling of the dynamics of RESTful conversations. Low-level HTTP details can be abstracted from during the design phase of the API, or when deciding which API to use. We argue that, in these situations, visual models of the required client–server interactions might increase developers’ efficiency and facilitate their understanding. Thus, to capture all possible interaction sequences in a given RESTful conversation, we propose RESTalk, an extension to the BPMN Choreography diagrams to render them more concise and yet sufficiently expressive in the specific REST domain. We also report on the results obtained from an exploratory survey we have conducted to assess the maturity of the field for a domain-specific language and to obtain feedback for future improvements of RESTalk.  相似文献   

12.
高性能计算 Web 应用社区经常需要封装不同类型的应用,封装过程需开发或调整源代码。因此,社区管理员不能快速满足应用封装需求,特别是作业参数相对复杂的应用。通过分析不同作业管理系统的作业提交和管理命令、不同学科领域的高性能计算应用程序的使用方式、通用作业描述语言的结构和语义,本文提出了一种基于 portlet 的高性能计算应用集成组件,设计和实现了应用需求描述模板、作业提交页面动态渲染引擎、作业参数存储和填充方法,从而提供了基于 WEB 页面的应用封装、动态生成作业提交 Web页面和作业描述并提交作业的功能,并且支持以历史作业的输入数据填充作业提交页面的功能。分析及实例表明,该组件能够有效提高应用封装的响应速度,用户能够方便的提交作业和重用复杂的作业参数,具有良好的可移植性和扩展性。  相似文献   

13.
Wang  Fan  Wang  Lina  Li  Guangshun  Wang  Yilei  Lv  Chao  Qi  Lianyong 《World Wide Web》2022,25(5):1809-1829
World Wide Web - A growing number of web APIs published on the Internet allows mashup developers to discover appropriate web APIs for polishing mashups. Developers often have to manually pick and...  相似文献   

14.
典型的移动应用开发分为服务器端和客户端两部分,传统的移动应用开发模型需要花费大量人力、物力和时间成本用于开发和维护服务器端功能.本文提出了一种面向移动应用的后端服务平台,该平台为移动应用开发提供自定义数据服务、用户管理服务、文件存储服务、地理信息查询服务、消息推送服务等适用于典型移动应用场景的通用服务.移动开发者可以通过平台提供的REST风格OpenAPI或者为不同移动终端提供的nativeSDK两种方式利用后端服务平台进行移动应用的开发.最后,本文以实际案例说明了面向移动应用的后端服务平台的使用和为移动应用开发带来的优化和改进.  相似文献   

15.
Cloud computing offers massive scalability and elasticity required by many scientific and commercial applications. Combining the computational and data handling capabilities of clouds with parallel processing also has the potential to tackle Big Data problems efficiently. Science gateway frameworks and workflow systems enable application developers to implement complex applications and make these available for end-users via simple graphical user interfaces. The integration of such frameworks with Big Data processing tools on the cloud opens new opportunities for application developers. This paper investigates how workflow systems and science gateways can be extended with Big Data processing capabilities. A generic approach based on infrastructure aware workflows is suggested and a proof of concept is implemented based on the WS-PGRADE/gUSE science gateway framework and its integration with the Hadoop parallel data processing solution based on the MapReduce paradigm in the cloud. The provided analysis demonstrates that the methods described to integrate Big Data processing with workflows and science gateways work well in different cloud infrastructures and application scenarios, and can be used to create massively parallel applications for scientific analysis of Big Data.  相似文献   

16.
17.
Robillard  M.P. 《Software, IEEE》2009,26(6):27-34
The paper discusses the application program interface (API). Most software projects reuse components exposed through APIs. In fact, current-day software development technologies are becoming inseparable from the large APIs they provide. An API is the interface to implemented functionality that developers can access to perform various tasks. APIs support code reuse, provide high-level abstractions that facilitate programming tasks, and help unify the programming experience. A study of obstacles that professional Microsoft developers faced when learning to use APIs uncovered challenges and resulting implications for API users and designers. The article focuses on the obstacles to learning an API. Although learnability is only one dimension of usability, there's a clear relationship between the two, in that difficult-to-use APIs are likely to be difficult to learn as well. Many API usability studies focus on situations where developers are learning to use an API. The author concludes that as APIs keep growing larger, developers will need to learn a proportionally smaller fraction of the whole. In such situations, the way to foster more efficient API learning experiences is to include more sophisticated means for developers to identify the information and the resources they need-even for well-designed and documented APIs.  相似文献   

18.
Cloud Computing is emerging as a new computing paradigm which aims to provide reliable, customized and QoS guaranteed dynamic computing environments for end users. The availability of these large, virtualized pools of computing resources raises the possibility of a new computing paradigm for scientific research with many advantages. For research groups, Cloud Computing provides convenient access to reliable, high-performance clusters and storage without the need to purchase and maintain sophisticated hardware. For developers, virtualization allows scientific codes to be optimized and pre-installed on machine images, facilitating control over the computational environment. In these large-scale, heterogeneous and dynamic systems, the efficient execution of parallel computations can require mappings of tasks to computing resources whose performance is both irregular (because of heterogeneity) and variable in time (because of dynamicity). This paper introduces our initial experience with Cloud Computing based on a Python implementation of our OpenCF framework. We propose to show the features provided by OpenCF using the Google Application Engine as a proof of concept.  相似文献   

19.
Multi-core systems are any computing device nowadays and stream processing applications are becoming recurrent workloads, demanding parallelism to achieve the desired quality of service. As soon as data, tasks, or requests arrive, they must be computed, analyzed, or processed. Since building such applications is not a trivial task, the software industry must adopt parallel APIs (Application Programming Interfaces) that simplify the exploitation of parallelism in hardware for accelerating time-to-market. In the last years, research efforts in academia and industry provided a set of parallel APIs, increasing productivity to software developers. However, a few studies are seeking to prove the usability of these interfaces. In this work, we aim to present a parallel programming assessment regarding the usability of parallel API for expressing parallelism on the stream processing application domain and multi-core systems. To this end, we conducted an empirical study with beginners in parallel application development. The study covered three parallel APIs, reporting several quantitative and qualitative indicators involving developers. Our contribution also comprises a parallel programming assessment methodology, which can be replicated in future assessments. This study revealed important insights such as recurrent compile-time and programming logic errors performed by beginners in parallel programming, as well as the programming effort, challenges, and learning curve. Moreover, we collected the participants’ opinions about their experience in this study to understand deeply the results achieved.  相似文献   

20.
The principle of information hiding has been very influential in software engineering since its inception in 1972. This principle prescribes that software modules hide implementation details from other modules in order to reduce their dependencies. This separation also decreases the dependency among software developers implementing these modules, thus simplifying the required coordination. A common instantiation of this principle widely used in the industry is in the form of application programming interfaces (APIs). While previous studies report on the general use and benefits of APIs, they have glossed over the detailed ways in which APIs facilitate the coordination of work. In order to unveil these mechanisms, we performed a qualitative study on how practitioners use APIs in their daily work. Using ethnographic data from two different software development teams, we identified three roles played by APIs in the coordination of software development projects. These roles are described using three metaphors: APIs as contracts, APIs as boundaries, and APIs as communication mechanisms. As contracts, APIs allow software developers to work in parallel and independently. As a communication mechanism, APIs facilitate communication among software developers by giving them something specific to talk about. At the same time, APIs establish the boundaries between developers, and, accordingly, what should be talked about. This paper also reports on problems the studied teams face when using APIs to coordinate their work. Based on these results, we draw theoretical implications for collaborative software engineering.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号