Figure 5: Performance results in milliseconds taken with JMeter for three view engines: Handlebars, HtmlFlow and ReactJs.
of user-interface components, which may depend on
runtime introspection data (e.g. reflection).
The increasing attention around HtmlFlow raised
the idea of developing a mechanism that automati-
cally generates a fluent interface based on the HTML
language specification, specified in a XSD file, which
gave rise to the xmlet platform.
Having templates views defined as first-class
functions suppress the limitations of textual templates
for server-side views specially in the presence of large
data sets. Thus HtmlFlow keeps template views sim-
ple with focus on domain-driven design and avoiding
auxiliary decorations such as numbered pagination or
infinite scrolling via DOM manipulation techniques.
One of our goals for a future release of HtmlFlow
is to include an automatic translation tool that allows
to convert an HTML document in its equivalent defi-
nition in HtmlFlow idiom. This is an essential module
to spread the HtmlFlow in mainstream use allowing
web designers to easily convert their web themes to
integrate a main HtmlFlow project.
More interesting and the next evolution of
HtmlFlow will be the support of asynchronous mod-
els with particular focus in Java reactive streams. Our
goal is to deal with the Observable or Publisher as
a result of the transformation provided by a higher-
order template that can be asynchronously processed
to emit the resulting HTML to the HTTP response
stream.
ACKNOWLEDGEMENTS
We express our gratitude to Antonio Rito Silva from
INESC-ID, Professor at University of Lisbon for
many suggestions and improvements of our work. We
would like to thank Pedro Felix for all feedback and
help to enhance our work.
REFERENCES
Agrawal, R., Kadadi, A., Dai, X., and Andres, F. (2015).
Challenges and opportunities with big data visualiza-
tion. In Proceedings of the 7th International Confer-
ence on Management of Computational and Collec-
tive intElligence in Digital EcoSystems, MEDES ’15,
pages 169–173, New York, NY, USA. ACM.
Alur, D., Malks, D., and Crupi, J. (2001). Core J2EE Pat-
terns: Best Practices and Design Strategies. Prentice
Hall PTR, Upper Saddle River, NJ, USA.
Ase, D. (2015). Kotlin dsl for html. Technical report,
https://j2html.com/.
Binder, W., Hulaas, J., and Moret, P. (2007). Advanced java
bytecode instrumentation. In Proceedings of the 5th
International Symposium on Principles and Practice
of Programming in Java, PPPJ ’07, pages 135–144,
New York, NY, USA. ACM.
E. Krasner, G. and Pope, S. (1988). A description of the
model-view-controller user interface paradigm in the
smalltalk80 system. Journal of Object-oriented Pro-
gramming - JOOP, 1:26–49.
Farago, J. H., Williams, H. E., Walsh, J. E., Whyte, N. A.,
Goel, K. J., Fung, P., Lazier, A. J., Moss, K. A., and
Ray, E. N. (2007). Object search ui and dragging ob-
ject results.
Feldman, D., Schmidt, M., and Sohler, C. (2013). Turn-
ing big data into tiny data: Constant-size coresets for
k-means, pca and projective clustering. In Proceed-
ings of the Twenty-fourth Annual ACM-SIAM Sympo-
sium on Discrete Algorithms, SODA ’13, pages 1434–
1453, Philadelphia, PA, USA. Society for Industrial
and Applied Mathematics.
Fielding, R. and Reschke, J. (2014). Chunked transfer cod-
ing. Rfc, https://tools.ietf.org/html/rfc7230#section-
4.1.
Fowler, M. (2002). Patterns of Enterprise Application Ar-
chitecture. Addison-Wesley Longman Publishing Co.,
Inc., Boston, MA, USA.
Fowler, M. (2010). Domain Specific Languages. Addison-
Wesley Professional, 1st edition.
Fox, T. (2001). Eclipse vert.x tool-kit for building re-
active applications on the jvm. Technical report,
https://vertx.io/.
Gamma, E., Helm, R., Johnson, R., and Vlissides, J.
(1995). Design Patterns: Elements of Reusable
Object-oriented Software. Addison-Wesley Longman
Publishing Co., Inc., Boston, MA, USA.
Hors, A. L., H
´
egaret, P. L., Wood, L., Nicol, G., Robie, J.,
Champion, M., Arbortext, and Byrne, S. (2004). Doc-
ument object model (dom) level 3 core specification.
Technical report, https://www.w3.org/TR/2004/REC-
DOM-Level-3-Core-20040407/.
Jin, X., Wah, B. W., Cheng, X., and Wang, Y. (2015). Sig-
WEBIST 2019 - 15th International Conference on Web Information Systems and Technologies
128