@conference {liquid:2023:icwe, title = {LiquidAI: Towards an Isomorphic AI/ML System Architecture for the Cloud-Edge Continuum}, booktitle = {23rd International Conference on Web Engineering (ICWE)}, year = {2023}, month = {June}, publisher = {Springer}, organization = {Springer}, address = {Alicante, Spain}, abstract = {A typical Internet of Things (IoT) system consists of a large number of different subsystems and devices, including sensors and actuators, gateways that connect them to the Internet, cloud services, end-user applications and analytics. Today, these subsystems are implemented with a broad variety of programming technologies and tools, making it difficult to migrate functionality from one subsystem to another. In our earlier papers, we have predicted the rise of \emph{isomorphic} IoT system architectures in which all the subsystems can be developed with a consistent set of technologies. In this paper we expand the same research theme to machine learning technologies, highlighting the need to use ML in a consistent and uniform fashion across the entire Cloud-Edge continuum. }, keywords = {IoT, liquid software}, author = {Kari Systa and Cesare Pautasso and Antero Taivalsaari and Tommi Mikkonen} } @conference {2022:sose:ccc, title = {Cargo-Cult Containerization: A Critical View of Containers in Modern Software Development}, booktitle = {16th International Conference on Service-Oriented System Engineering (SOSE 2022)}, year = {2022}, month = {August}, publisher = {IEEE}, organization = {IEEE}, address = {San Francisco, USA}, abstract = {Software is increasingly developed and deployed using containers. While the concept of a container is conceptually straightforward, there are various issues to be considered while using them, ranging from technical details inside containers to the orchestration of containers that jointly form a meaningful application. In recent years, the use of containers has become so prevalent that developers have a tendency to resort to cargo-cult containerization {\textendash} ritual adherence to the use of containers just because so many others are doing the same thing. In this paper, we study advantages and downsides of containers in modern- day software development. We foresee the use of containers to spread into new areas, including IoT systems and embedded devices. At the same time, we caution against indiscriminate use of containers, since excessive containerization can have adverse impacts on software maintenance and overall complexity of a system architecture.}, keywords = {containers, software architecture}, author = {Tommi Mikkonen and Cesare Pautasso and Kari Systa and Antero Taivalsaari} } @conference {2021:icwe:fullstack, title = {Full Stack is Not What It Used to Be}, booktitle = {21st International Conference on Web Engineering (ICWE2021)}, year = {2021}, month = {May}, publisher = {Springer}, organization = {Springer}, address = {Biarritz, France}, abstract = {The traditional definition of full stack development refers to a skill set that is required for writing software both for the frontend and backend of a web application or site. In recent years, the scope of full stack development has expanded significantly, though. Today, a full stack software developer is assumed to master various additional areas especially related to cloud infrastructure and deployment, message brokers and data analytics technologies. In addition, the emergence of Internet of Things (IoT) and the rapidly spreading use of AI/ML technologies are introducing additional skill set requirements. In this paper, we discuss the expectations for a modern full stack developer based on our industry observations, and argue that these expectations have significant implications for software and web engineering education.}, keywords = {Cloud, Education, Internet of Things, IoT, Programmable World, software architecture, software engineering, Web engineering}, doi = {10.1007/978-3-030-74296-6_28}, author = {Antero Taivalsaari and Tommi Mikkonen and Cesare Pautasso and Kari Systa} } @article {2021:computer, title = {Isomorphic Internet of Things Architectures With Web Technologies}, journal = {Computer}, volume = {54}, year = {2021}, month = {July}, pages = {69--78}, abstract = {Internet of Things development needs isomorphic software architectures, in which every kind of device can be programmed with a consistent set of implementation technologies, allowing applications and their components to be statically deployed or dynamically migrated without having to change their shape.}, keywords = {Internet of Things, Isomorphic Architecture, Web}, doi = {10.1109/MC.2021.3074258}, url = {https://ieeexplore.ieee.org/document/9473238}, author = {Tommi Mikkonen and Cesare Pautasso and Antero Taivalsaari} } @conference {2019:icwe:cornucopia, title = {On the Web Platform Cornucopia}, booktitle = {19th International Conference on Web Engineering (ICWE 2019)}, year = {2019}, month = {June}, pages = {347-355}, publisher = {Springer}, organization = {Springer}, address = {Daejeon, Korea}, abstract = {The evolution of the Web browser has been organic, with new features introduced on a pragmatic basis rather than following a clear rational design. This evolution has resulted in a cornucopia of overlapping features and redundant choices for developing Web applications. These choices include multiple architecture and rendering models, different communication primitives and protocols, and a variety of local storage mechanisms. In this position paper we examine the underlying reasons for this historic evolution. We argue that without a sound engineering approach and some fundamental rethinking there will be a growing risk that the Web may no longer be a viable, open software platform in the long run.}, keywords = {Web Engineering; Web Platform}, doi = {10.1007/978-3-030-19274-7_25}, author = {Tommi Mikkonen and Cesare Pautasso and Kari Systa and Antero Taivalsaari} } @conference {2018:webist, title = {Web User Interface Implementation Technologies: An Underview}, booktitle = {14th International Conference on Web Information Systems and Technologies (WEBIST 2018)}, year = {2018}, month = {September}, pages = {127-136}, address = {Seville, Spain}, abstract = {Over the years, the World Wide Web has evolved from a document distribution environment into a rich development platform that can run compelling, full-fledged software applications. However, the programming capabilities of the web browser {\textendash} designed originally for relatively simple scripting tasks {\textendash} have evolved organically in a rather haphazard fashion. Consequently, there are many ways to build applications on the Web today. Depending on one{\textquoteright}s viewpoint, current standards-compatible web browsers support three, four or even five built-in application rendering and programming models. In this paper, we provide an {\textquotedblright}underview{\textquotedblright} of the built-in client-side web application UI implementation technologies, i.e., a summary of those rendering models that are built into the standards-compatible web browser out-of-the-box. While the dominance of the base HTML/CSS/JS technologies cannot be ignored, we foresee Web Components and WebGL gaining popularity as the world moves towards more complex and even richer web applications, including systems supporting virtual and augmented reality.}, keywords = {Web application architecture}, doi = {10.5220/0006885401270136}, url = {http://insticc.org/node/TechnicalProgram/webist/presentationDetails/68854}, author = {Antero Taivalsaari and Tommi Mikkonen and Kari Systa and Cesare Pautasso} } @article {2017:jwe:liquid, title = {Architecting Liquid Software}, journal = {Journal of Web Engineering}, volume = {16}, year = {2017}, month = {September}, pages = {433-470}, abstract = {The Liquid Software metaphor refers to software that can operate seamlessly across multiple devices owned by one or multiple users. Liquid software applications can take advantage of the computing, storage and communication resources available on all the devices owned by the user. Liquid software applications can also dynamically migrate from one device to another, following the user{\textquoteright}s attention and usage context. The key design goal in Liquid Software development is to minimize the additional efforts arising from multiple device ownership (e.g., installation, synchronization and general maintenance of personal computers, smartphones, tablets, home and car displays, and wearable devices), while keeping the users in full control of their devices, applications and data. In this paper we present the design space for Liquid Software, categorizing and discussing the most important architectural dimensions and technical choices. We also provide an introduction and comparison of two frameworks implementing Liquid Software capabilities in the context of the World Wide Web. }, keywords = {design space, liquid software, multi-device programming, software architecture}, doi = {10.26421/JWE16.5-6}, url = {http://www.rintonpress.com/journals/jweonline.html$\#$v16n56}, author = {Andrea Gallidabino and Cesare Pautasso and Tommi Mikkonen and Kari Systa and Jari-Pekka Voutilainen and Antero Taivalsaari} } @conference {2017:icsa:web, title = {Comparing the Built-In Application Architecture Models in the Web Browser}, booktitle = {1st IEEE International Conference on Software Architecture (ICSA 2017)}, year = {2017}, month = {April}, publisher = {IEEE}, organization = {IEEE}, address = {Gothenburg, Sweden}, abstract = {Depending on one{\textquoteright}s viewpoint, a generic standards-compatible web browser supports three, four or five built-in application rendering and programming models. In this paper, we provide an overview of the built-in client-side web application architectures. While the dominance of the base HTML/CSS/JS technologies cannot be ignored, we foresee Web Components and WebGL gaining popularity as the world moves towards more complex and even richer web applications, including systems supporting virtual and augmented reality.}, keywords = {Web application architecture, Web development, Web engineering}, author = {Antero Taivalsaari and Tommi Mikkonen and Cesare Pautasso and Kari Systa} } @conference {liquidjs:2016:wicsa, title = {On the Architecture of Liquid Software: Technology Alternatives and Design Space}, booktitle = {13th Working IEEE/IFIP Conference on Software Architecture (WICSA 2016)}, year = {2016}, month = {April}, address = {Venice, Italy}, abstract = {The liquid metaphor refers to software that operates seamlessly across multiple devices owned by one or multiple users. Liquid software architectures can dynamically deploy and redeploy stateful software components and transparently adapt them to the capabilities of heterogeneous target devices. The key design goal in liquid software development is to minimize the efforts that are related to multiple device ownership (e.g., installation, synchronization and general maintenance of personal computers, smartphones, tablets, home displays, cars and wearable devices), while keeping the users in full control of their devices, applications and data. In this paper we present a design space for liquid software, categorizing and discussing the most important architectural issues and alternatives. These alternatives represent relevant capabilities offered by emerging technologies and deployment platforms that are then positioned and compared within the design space presented in the paper.}, keywords = {design space, liquid software, liquid.js}, author = {Andrea Gallidabino and Cesare Pautasso and Ville Ilvonen and Tommi Mikkonen and Kari Systa and Jari-Pekka Voutilainen and Antero Taivalsaari} }