ASSISTING DEVELOPERS TO BUILD HIGH-QUALITY CODE-FIRST WEB SERVICE APIS
Keywords:
WEB SERVICES, CODE-FIRST, WSDL ANTI-PATTERNS, AUTOMATIC DETECTION, SERVICE DISCOVERY, SERVICE UNDERSTANDABILITYAbstract
Searching and understanding Web Services is challenging mainly because service developers tend to disregard the importance of the exposed service APIs. In many situations these APIs are defined using WSDL documents, which are written in an XML dialect. Service developers can opt between manually writing these documents or inferring them from service implementations. This work is focused on the later methodology and provides techniques and tools for generating WSDL documents avoiding wellknown bad practices (e.g., lack of textual comments or representative names) that compromise Web Service API quality. Our experiments show that by using our approach the obtained WSDL documents are more likely to be free from these undesirable practices so they better describe service functionality. In addition, these experiments show that the WSDL documents generated using our approach also have other important quality-related features, such as less redundant data-type definitions and better defined data-types. Experiments have been performed by comparing our proposal against WSDL generation tools/approaches from both the industry and the academy.
Downloads
References
References
E. E. Allen and R. Cartwright. Safe instantiation in generic java. Science of Computer Programming, 59(1-
:26 – 37, 2006. Special Issue on Principles and Practices of Programming in Java (PPPJ 2004).
V. Basili, L. Briand, et al. A validation of object-oriented design metrics as quality indicators. Software
Engineering, IEEE Transactions on, 22(10):751 –761, oct 1996.
J. Beaton, S. Y. Jeong, et al. Usability challenges for enterprise service-oriented architecture APIs. In IEEE
Symposium on Visual Languages and Human-Centric Computing (VL/HCC), pp. 193–196. Sept. 2008.
M. B. Blake and M. F. Nowlan. Taming Web Services from the wild. IEEE Internet Computing, 12(5):62–69,
J. Bloch. How to design a good api and why it matters. In Companion to the 21st ACM SIGPLAN symposium
on Object-oriented programming systems, languages, and applications, OOPSLA ’06, pp. 506–507. ACM,
New York, NY, USA, 2006.
H. S. Chae, Y. R. Kwon, et al. A cohesion measure for object-oriented classes. Software: Practice and
Experience, 30(12):1405–1431, 2000.
S. R. Chidamber and C. F. Kemerer. A metrics suite for object oriented design. IEEE Transactions on Software
Engineering, 20(6):476–493, 1994.
M. Crasso, J. M. Rodriguez, et al. Revising WSDL Documents: Why and how. IEEE Internet Computing,
:48–56, Octuber-September 2010.
M. Crasso, A. Zunino, et al. Combining document classification and ontology alignment for semantically
enriching Web Services. New Generation Computing, 28:371–403, 2010.
pWS-discovery: http://docs.oasis-open.org/ws-dd/discovery/1.1/wsdd-discovery-1.1-spec.html
—. A survey of approaches to Web Service discovery in Service-Oriented Architectures. Journal of Database
Management, 22:103–134, 2011.
C. D. M. Dan Klein. Accurate unlexicalized parsing. In Proceedings of the 41st Meeting of the Association
for Computational Linguistics, pp. 423–430. 2003.
F. Deissenboeck and M. Pizka. Concise and consistent naming. Software Quality Journal, 14(3):261–282,
T. Erl. SOA Principles of Service Design. Prentice Hall, 2007.
A. Erradi and P. Maheshwari. Enhancing web services performance using adaptive quality of service management.
In B. Benatallah, F. Casati, et al., eds., Web Information Systems Engineering (WISE 2007), vol. 4831
of Lecture Notes in Computer Science, pp. 349–360. Springer Berlin Heidelberg, 2007.
J. Fan and S. Kambhampati. A snapshot of public Web Services. SIGMOD Record, 34(1):24–32, 2005.
J. M. Garc´ıa, D. Ruiz, et al. Improving semantic Web Services discovery using SPARQL-based repository
filtering. Web Semantics: Science, Services and Agents on the World Wide Web, 17(0):12 – 24, 2012.
M. Grechanik, C. Fu, et al. A search engine for finding highly relevant applications. In 32nd ACM/IEEE
International Conference on Software Engineering (ICSE ’10), Cape Town, South Africa, pp. 475–484. ACM
Press, New York, NY, USA, 2010.
T. Grill, O. Polacek, et al. Methods towards api usability: A structural analysis of usability problem categories.
In M. Winckler, P. Forbrig, et al., eds., Human-Centered Software Engineering, vol. 7623 of Lecture Notes in
Computer Science, pp. 164–180. Springer Berlin Heidelberg, 2012.
S. Hall´e, G. Hughes, et al. Generating interface grammars from WSDL for automated verification of web
services. In L. Baresi, C.-H. Chi, et al., eds., Service-Oriented Computing, vol. 5900 of Lecture Notes in
Computer Science, pp. 516–530. Springer Berlin Heidelberg, 2009.
M. Henning. API design matters. Communications of the ACM, 52(5):46–56, May 2009.
E. Høst and B. Østvold. Debugging method names. In S. Drossopoulou, ed., ECOOP 2009 - Object-Oriented
Programming, vol. 5653 of Lecture Notes in Computer Science, pp. 294–317. Springer Berlin Heidelberg,
W. Jiang, T.Wu, et al. Qos-aware automatic service composition: A graph view. Journal of Computer Science
and Technology, 26(5):837–853, 2011.
N. Khamis, R. Witte, et al. Automatic quality assessment of source code comments: The javadocminer. In
C. Hopfe, Y. Rezgui, et al., eds., Natural Language Processing and Information Systems, vol. 6177 of Lecture
Notes in Computer Science, pp. 68–79. Springer Berlin Heidelberg, 2010.
D. Lawrie, H. Feild, et al. An empirical study of rules for well-formed identifiers. Journal of Software
Maintenance and Evolution: Research and Practice, 19(4):205–229, 2007.
S.-Y. Lin, C.-H. Lai, et al. A trustworthy qos-based collaborative filtering approach for web service discovery.
Journal of Systems and Software, 93:217–228, 2014.
G. A. Miller. Wordnet: A lexical database for english. Communications of the ACM, 38(11):39–41, Nov.
D. Milne and I. H. Witten. An open-source toolkit for mining wikipedia. Artificial Intelligence, 194:222 –
, 2013.
T. Narock, V. Yoon, et al. A Provenance-Based Approach to Semantic Web Service Description and Discovery.
Decision Support Systems, 2014. In press.
J. L. Ordiales Coscia, C. Mateos, et al. Anti-pattern free code-first Web Services for state-of-the-art Java
WSDL generation tools. International Journal of Web and Grid Services, 9(2):107–126, 2013.
M. Papazoglou, P. Traverso, et al. Service-oriented computing: A research roadmap. International Journal of
Cooperative Information Systems, 17(2):223–255, 2008.
G. M. Rama and A. Kak. Some structural measures of api usability. Software: Practice and Experience, p. In
press, 2013.
J. Rodriguez, M. Crasso, et al. Automatically detecting opportunities for Web Service Descriptions improvement.
In W. Cellary and E. Estevez, eds., Software Services for e-World, vol. 341 of IFIP Advances in
Information and Communication Technology, pp. 139–150. Springer Boston, 2010.
—. Bottom-up and top-down cobol system migration to web services: An experience report. IEEE Internet
Computing, 17(2):44–51, 2013.
J. M. Rodriguez, M. Crasso, et al. Improving web service descriptions for effective service discovery. Science
of Computer Programming, 75(11):1001 – 1021, 2010.
—. An approach for web service discoverability anti-patterns detection. Journal of Web Engineering, 12(1-
:131–158, 2013.
M. Sharifi, S. B. Ramezani, et al. Predictive self-healing of web services using health score. Journal of Web
Engineering, 11(1):79–92, Mar. 2012.
D. Steidl, B. Hummel, et al. Quality analysis of source code comments. In Program Comprehension (ICPC),
IEEE 21st International Conference on, pp. 83–92. May 2013.
T. Suzumura, T. Takase, et al. Optimizing web services performance by differential deserialization. In 2005
IEEE International Conference on Web Services, pp. 185–192. july 2005.
T. Tenny. Program readability: procedures versus comments. IEEE Transactions on Software Engineering,
(9):1271–1279, Sep 1988.
M. Wei, J. Xu, et al. Ontology-based home service model. Computer Science and Information Systems,
(2):813 – 838, 2012.
M.-W. Zhang, B. Zhang, et al. Web service composition based on qos rules. Journal of Computer Science
and Technology, 25(6):1143–1156, 2010.
M. Zibran, F. Eishita, et al. Useful, but usable? factors affecting the usability of apis. In Reverse Engineering
(WCRE), 2011 18th Working Conference on, pp. 151–155. Oct 2011.
G. Zou, Y. Gan, et al. Dynamic composition of web services using efficient planners in large-scale service
repository. Knowledge-Based Systems, 62:98–112, 2014.