Full Download Building Modern Business Applications: Reactive Cloud Architecture for Java, Spring, and PostgreSQL 1st Edition Peter Royal PDF DOCX
Full Download Building Modern Business Applications: Reactive Cloud Architecture for Java, Spring, and PostgreSQL 1st Edition Peter Royal PDF DOCX
com
https://ebookmeta.com/product/building-modern-business-
applications-reactive-cloud-architecture-for-java-spring-
and-postgresql-1st-edition-peter-royal-2/
OR CLICK HERE
DOWLOAD NOW
https://ebookmeta.com/product/building-modern-business-
applications-1st-edition-peter-royal/
ebookmeta.com
https://ebookmeta.com/product/spring-rest-building-java-microservices-
and-cloud-applications-balaji-varanasi/
ebookmeta.com
https://ebookmeta.com/product/mass-communication-living-in-a-media-
world-8th-edition-ralph-e-hanson/
ebookmeta.com
A Writer s Reference Diana Hacker Nancy Sommers Kimberli
Huster
https://ebookmeta.com/product/a-writer-s-reference-diana-hacker-nancy-
sommers-kimberli-huster/
ebookmeta.com
https://ebookmeta.com/product/roberto-clemente-the-pride-of-puerto-
rico-1st-edition-gerry-boehme/
ebookmeta.com
https://ebookmeta.com/product/writing-successful-undergraduate-
dissertations-in-social-sciences-a-student-s-handbook-2nd-edition-
francis-jegede/
ebookmeta.com
https://ebookmeta.com/product/human-animal-relationships-in-
transformation-scientific-moral-and-legal-perspectives-1st-edition-
augusto-vitale/
ebookmeta.com
https://ebookmeta.com/product/computer-numerical-controlled-machines-
constructional-features-and-programming-1st-edition-nirmal-kumar-
mandal/
ebookmeta.com
Oswaal CBSE Sample Question Paper Class 12 Accountancy
Book (For Term I Nov-Dec 2021 Exam) 23 Sep 2021 Edition
Oswaal Editorial Board
https://ebookmeta.com/product/oswaal-cbse-sample-question-paper-
class-12-accountancy-book-for-term-i-nov-
dec-2021-exam-23-sep-2021-edition-oswaal-editorial-board/
ebookmeta.com
Peter Royal
This work is subject to copyright. All rights are solely and exclusively
licensed by the Publisher, whether the whole or part of the material is
concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in
any other physical way, and transmission or information storage and
retrieval, electronic adaptation, computer software, or by similar or
dissimilar methodology now known or hereafter developed.
The publisher, the authors, and the editors are safe to assume that the
advice and information in this book are believed to be true and accurate
at the date of publication. Neither the publisher nor the authors or the
editors give a warranty, expressed or implied, with respect to the
material contained herein or for any errors or omissions that may have
been made. The publisher remains neutral with regard to jurisdictional
claims in published maps and institutional affiliations.
Business Software
In 2001, Watts S. Humphrey started off his book entitled Winning with
Software: An Executive Strategy1 with a chapter on “Why Every
Business Is a Software Business.” Ten years later, in 2011, Marc
Andreessen wrote a piece2 for The Wall Street Journal entitled “Why
Software Is Eating the World.” Fast-forward to 2019, and Microsoft’s
CEO Satya Nadella reaffirmed3 Watts’ declaration with “Every Company
Is Now a Software Company” during a discussion at the Mobile World
Congress.
The increasing reliance that businesses place on software had been
anticipated and has come to pass. Nearly all businesses rely on some
form of “Commercial Off The Shelf ” (COTS) software, even as the
“shelf” is now commonly an “… as a service” offering.
Each business is unique, and their software needs reflect that.
However, “software” is a broad term. This book is about a specific type
of software, “applications.” An “application” (or “app”) is software for
end users, whether they are a business’s employees or customers.
While all businesses benefit from software that is customized for how
they operate, the incremental value to the business relative to what’s
available as COTS generally results in developers such as you and I
working for larger organizations.
Let’s break down the attributes that will comprise our definition of
“Business Application.”
Domain Specific
A business can be said to operate within a given industry. Industries are
very broad domains , such as finance, manufacturing, entertainment,
etc. At a certain size, they generally partition themselves into internal
functional areas, or departments, such as sales, marketing, accounting,
etc. While there are commonalities in a given department across all
industries, the combination of industry and department yields many
unique values, as no two businesses conduct themselves in an identical
fashion. In fact, the way a business internally organizes itself can be an
important differentiator. Having an internal organization that’s
different from its peers can be a competitive advantage.
This is our area of focus, applications that are tailored toward
specific departments. Some departments, such as accounting, have
enough similarity across domains to support third-party vendors.
Often, such software will have the ability to be customized to adapt it to
the unique specifics of a business. However, this comes with risks, as a
critical component of a department’s operation is now in the hands of a
third party. This relationship has been recognized by financiers, some
of whom acquire these vendors and slow improvements in the software
in order to collect lucrative support fees, as without the software the
business would falter.
A mitigation to that risk is for a business to hire or contract
software developers such as yourself to create these applications.
Having full control of the application allows the business to control its
future . This is the basis for “every company being a software company.”
What once may have been a competitive advantage has now morphed
into table stakes.
How It Is Used
Within this departmental domain , our business applications are ones
that act as a source of truth for the department. The application is both
the “system of record,” in addition to the “system of engagement.” It is
the system that users interact with for data entry, as well as being the
authoritative store for that data. In very large corporations, there may
be a single corporate-wide system (an Enterprise Resource Planning
system,4 or ERP) that is the system of record, delegating the system of
engagement to other systems. Those systems are far larger than the
ones we are focusing on.
The most straightforward way to capture data into a system of
record is to make it a job requirement for employees to use the system.
Or, in the case of a customer-facing system , being the only way to
interact with the business. It is important to have empathy for the users
of these systems. As software developers, if there are annoyances with
the tools we use daily, in many cases we can modify our tools to remove
what’s frustrating. For users of business applications where usage of it
is a condition of performing their job, they do not have that luxury. The
responsibility to ensure that using an application is, as a minimum,
pleasant, falls to us. With information captured into an application, the
business is then able to use the data in pursuit of its goals.
Data is not captured in a vacuum. Without structure, data can be
worse than meaningless, creating additional confusion. Based on the
business's current objectives, a structure for data can be devised, a
model. The rigidity of this model can have a direct impact on the
business’s ability to adapt to changes in the future. If a change in the
business requires a change in this model, the application that houses
this model must then be updated for the business itself to change.
Writing software in a manner that is amenable to change is valuable
and can be under-appreciated. There is a balancing act between doing
exactly what is required vs. generalizing based on what could change in
the future. However, there are techniques that, to a degree, can side-
step this balancing act by taking a different path entirely. We will
discuss this more in Chapter 4.
Business applications enforce processes and workflows. These
workflows describe the activities that must be taken based on data in
the system, without prescribing who performs them. By formalizing
them into an application, adherence to them is increased or guaranteed.
We are focusing on applications that allow users to collaborate on
workflows. Our business applications are multiuser systems.
Collectively, requirements on the structure of data and the
processes by which the data is modified are known as business rules.
We will explore business rules in depth in Chapter 5.
Measuring Importance
As engineers, our view of an application’s importance is often based on
how it is used. An application that is frequently used and/or manages
large amounts of data is important. These two dimensions are conflated
when referring to the “scale” of an application. The larger the scale, the
larger the importance. That may not be the business’s perspective,
however. Instead, it is the criticality of the application to the continued
operation and success of the business’s operations.
For purposes of this book, our data volume sweet spot is what I like
to refer to as “medium-sized data” (as a play on the “big data”
nomenclature that swept over tech in the early part of this century).
Medium-sized data fits in the storage capacity of a single server,
although multiple servers may be used for resiliency. The data may also
fit entirely in memory, something that is increasingly true as system
capacities increase, and the changing nature of storage systems. Think
gigabytes, not terabytes.
As our business applications are targeted at end users, its access
frequency will be at human-scale speeds. The number of users will be
the driving factor in the overall number of requests, which will likely be
measured in requests per minute rather than second. This has
implications on how we observe the behavior of our systems; the
sparser the requests, the trickier it becomes to use metrics to monitor
its behavior. Is the system unavailable, or is it a quiet period for users?
This is explored in Chapter 12.
An application that is important to the business must be available
for use when the business requires it. There will likely be periods of
time for the business in which the unavailability of the application
would be disastrous. An application’s sole purpose could be to assist
users during these critical periods, as the formalization of the business
processes performed with the application helps ensure they are
performed as intended.
“Modern”
Modern is an adjective that will ultimately date whatever uses it. In
using this label, we are certainly declaring that our techniques are more
up to date than others. Computing capabilities have grown by leaps and
bounds in the past two decades. It isn’t that older techniques become
invalid. Rather, increased compute and storage capacity have made new
techniques viable. Techniques that may have only lived on a whiteboard
are now able to be put into production use.
This is our modern, more akin to modern tools than modern art. In
time, with your help, they will become the new status quo. There will
certainly be techniques in the future that beget reuse of the modern
label again, but such is the cycle of progress.
The techniques I describe and advocate for in this book are not
novel. I am making the case that not only is it entirely feasible to use
them but doing will lead to software applications that are better suited
for the current moment and into the future.
“Cloud Computing ” is an intriguing trend that both abstracts
developers from the physical machine and can demand increased
mechanical sympathy with the machine as a mechanism for controlling
costs. It is easier than ever to provision compute resources, and
inattention to the resources in use can invert the value proposition for a
business.
I discuss this in concrete terms in Chapter 4. The techniques I will
describe open up the possibility of managing consumed resources in
closer concert with what is required at the time, even if it isn’t acted
upon. Similar to how I explain how to make an application’s logic
amenable to change, the same principle is extended to the resources
required for operation.
Summary
The business applications this book referred to can be described thusly:
Tailored to a specific domain
Bespoke work, either performed by employee-developers or
consultants
Usage by employees is mandatory
Multiuser
Data entry and decision support are core functions
A source of truth for the business
Value is derived from workflow and decision analysis automation
Medium-sized data
Criticality is due to importance to the business
Modern is in relation to current development practices, which I
discuss in the next chapter.
Footnotes
1 https://www.informit.com/store/winning-with-software-an-
executive-strategy-9780201776393
2 https://a16z.com/2011/08/20/why-software-is-eating-the-
world/
3 https://www.satellitetoday.com/innovation/2019/02/26/micros
oft-ceo-every-company-is-now-a-software-company/
4 An ERP is a system that facilitates organizational-wide management of processes
and data. They are frequently composed of modules that relate to facets of the
business such as inventory management, purchase orders, and accounting. They are
highly customizable to the needs of the business.
© The Author(s), under exclusive license to APress Media, LLC, part of Springer
Nature 2023
P. Royal, Building Modern Business Applications
https://doi.org/10.1007/978-1-4842-8992-1_2
Green Screen
The first business applications I was exposed to were “green screen”
applications. The term was a throwback to terminals that were
connected to a central computer with multiple displays and keyboards
(terminals), rather than networking computers. The terminals were
often green CRT screens (thus the name) and had limited functionality.
They could display text from the central computer, relay input back, and
perhaps printing functionality. If you’ve configured a terminal in Linux,
you may have seen references to these devices in potential values for
the TERM environment variable such as vt100.
As personal computers became common, hardware terminal
emulators were replaced by software terminal emulators running
under Windows, the common desktop operating system at the time.
This is where I was exposed to them, applications that the business
depended upon that were more important than the lifecycle of the
hardware that they were originally developed for. Hardware terminals
had been replaced with desktop software, and central computers with a
local area network.
Some of these systems are still in active use. They are written in
languages that are now considered legacy, such as COBOL or RPG .
Rewriting these systems in another language is a large effort and
introduces risk to the business. Being an economic decision, the
Discovering Diverse Content Through
Random Scribd Documents
oli mennyt naimisiin oman renkinsä kanssa. Välillä nauroi hän
käheästi. — Erkki kuunteli vain puolella korvalla, mutta hän kuuli
kuitenkin. Ja jälleen tunsi hän mielensä painostuvan, turhaksi kaiken
työnsä ja taistelonsa.
Samassa tuli Anni käskemään häntä keittiöön. Siellä oli joku, joka
etsi Erkkiä. Erkki jätti setelitukun pöydän nurkalle ja meni. — Se oli
kutsu kirkonkylän kauppiaan luo yksinkertaisille illallisille.
Hän katsahti äidin vuoteelle päin. Äiti oli nukkuvinaan. Vaikka hän
oli viipynyt poissa tuskin viittä minuuttia, oli äiti muka ehtinyt sillä
aikaa vaipua syvään uneen. Hän makasi kasvot seinään päin ja
kuorsasi kovasti.
— Äiti!
Äiti ei liikahtanutkaan.
— Äiti!
Ei vastausta.
— Olen. Minä jätin rahat pöydälle ja nyt ei niitä enää ole siinä.
Anni pyyhki kätensä ja tuli päättäväisenä Erkin perästä kamariin.
Hän astui kursailematta äidin vuoteen luo ja pudisti häntä hartioista.
— Älä, älä!
Erkki rukoili:
Anni sanoi:
— Hän ei anna niitä. Pidä hänen toista kättään, että hän ei pääse
repimään niitä! Minä otan ne häneltä.
Silloin vasta heräsi äiti. Hän itki ja rukoili, pyysi ja vaikeroi. Erkillä
oli niin paljon rahoja, hänellä ei mitään, Erkki oli niin paljon nauttinut
maailmasta, hän ei ollenkaan. Hän oli Erkin edestä raatanut ja
taistellut, antanut viimeisen penninsäkin Erkin koulunkäyntiin; nyt ei
Erkki tahtonut antaa hänelle edes osaa paljostaan. Kohta hän
kuolisi, ei Erkillä enää hänestä kauan vaivaa olisi.
— Mihin?
Erkki oli tullut äkkiä aivan kylmäksi. Hänelle oli kaikki lopussa. Hän
meni pöydän luo, otti setelipakan, antoi sen äidin käteen ja sanoi
lujasti ja armottomasti:
*****
Hän käveli kauas, kauas pitkin lumista maantietä, ohi kirkon, ohi
hautausmaan, kohti korpea lähestyvää. Lankesi hämärä hänen
ympärilleen, syttyivät tähdet hänen päänsä päälle. Syttyivät myös
lamput lakeudella, syttyivät taloissa ja etäisissä metsätorpissa. —
Mutta Erkin mieleen hiipi ääretön surumielisyys.
Mitä hän oli ollut ja miksi hän oli elänyt? Mihin pyrkinyt ja mitä
elämässä toimittanut? Kuluttanut hän oli aikansa arkipäiväin
pienessä rähinässä, tuhlannut itsensä, tuhlannut toiveensa ja
työkykynsä. Tyhjä, puusta pudonnut lehti hän oli, valmis hankeen
haudattavaksi …
Ei ollut elämä hänelle antanut paljon iloja eikä paljon suruja. Oli
antanut päiviä pääksytellen, iloa vain iltojen siteiksi, surua vain
huomenen huoliksi. Ei ollut elämällä siis häneltä paljoa otettavaa …
LEHTIPURJEESSA
Lehtipurjeessa, lehtipurjeessa!
Lehtipurjeessa, lehtipurjeessa!
— Niinkuin tuossa.
— Nukuttaako sinua?
— Eipä erityisesti.
Mutta Erkki katseli Annia kuitenkin tänä iltana eri silmillä kuin
ennen, näki vanhojen muistojensa prisman läpi, jotka tuolla ulkona
tähti-vipajavassa talvi-yössä olivat hänen sielussaan heränneet. Eikä
hän enää millään muotoa tahtonut päästää niitä jälleen katoamaan,
hän koetti väkisin loihtia esiin äskeistä mielialaansa ja väkisin
kehitellä sitä… Anni esiintyi hänelle nyt arvoituksena, joka kerran oli
hänen elämäänsä astunut, mutta jäänyt selittämättä. Eikö voisi sitä
nyt selittää, eikö jälleen mennyttä manata?
Lehtipurjeessa, lehtipurjeessa!
Lehtipurjeessa, lehtipurjeessa!
— Enpähän erinomaista.
Mutta Anni katseli edelleenkin tutkivasti Erkkiä. Erkin kasvoille oli
noussut niin tuskallinen ilme ja hän hengitti aivan kuuluvasti…
Lieneekö hän ollut sairas? Hän oli joskus ennenkin maininnut
turmiolle menneestä hermostostaan. — Anni tunsi itsensä oikein
levottomaksi.
Lehtipurjeessa, lehtipurjeessa!
Pirtin ovi oli lukossa. Hän kolisteli, ei kukaan tullut avaamaan. Hän
löi aitan ovelle, sama tulos… Vihdoin ilmestyi saunasta piika
pikkarainen, joka kertoi kaiken talonväen menneen ulkoniitylle. Hän
yksin jäänyt kotimieheksi… Ruislintu narisi, punertava täysikuu
paistoi vinoon yli viljapellon.
— Erkki!
— Erkki!
DE PROFUNDIS
Mutta Erkistä tuntui aivan kuin olisi äiti puuhannut omia peijaitaan.
Erkki ei tiennyt, pitikö hänen itkeä vai nauraa. Hän oli viime aikoina
todellakin ruvennut pelkäämään järkeään; alituinen ilkeä
päänkivistys vaivasi häntä. Kaamea tyhjyyden tunne oli täyttänyt
hänet ja kaikki ulkopuoliset vaikutukset kurkistivat sisälle hänen
sielunsa ikkunoista kuin kummitukset autioon huoneesen.