Skip to content

Commit 1fe90b8

Browse files
authored
Update over_the_wire.md
1 parent d1e09a6 commit 1fe90b8

File tree

1 file changed

+64
-57
lines changed

1 file changed

+64
-57
lines changed
Lines changed: 64 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,89 @@
1-
# Over-the-Wire: An Introduction for Business Applications
1+
# Key Idea: Over-the-Wire in abap2UI5
22

3-
## Background: Why is this relevant again?
3+
## Introduction
44

5-
In the early days of web development, **all websites were server-rendered**.
6-
Each user action, like clicking a link or submitting a form, triggered a full-page reload, with the server delivering the complete HTML response.
5+
The core idea of **abap2UI5** is to apply the principles of **Over-the-Wire (OtW)** web development to the SAP ecosystem.
6+
Over-the-Wire refers to a pattern where the **server is responsible for rendering the user interface (UI)** and sends **ready-to-render HTML fragments** to the browser.
7+
This avoids complex client-side frameworks and keeps the frontend lean and maintainable.
78

8-
With the rise of **Single Page Applications (SPAs)**, this changed. SPAs moved UI rendering and application logic to the browser, using JavaScript frameworks like React, Angular, or Vue. This allowed for rich, interactive user experiences—but also introduced significant complexity in development, deployment, and maintenance.
9+
While this approach is widely used in frameworks like Hotwire, Livewire, or Phoenix LiveView, **abap2UI5 adapts this idea for SAP**, using the SAPUI5 runtime to render the UI based on server-provided definitions.
910

10-
Today, **Over-the-Wire approaches revisit the original idea of server-side rendering**, but with modern techniques. Instead of sending entire pages, only small HTML fragments or UI updates are transferred, combining simplicity with interactivity.
11+
## Historical Context: From SSR to Over-the-Wire
1112

12-
## What is "Over the Wire"?
13+
In the early days of web development, **Server-Side Rendering (SSR)** was the standard approach.
14+
Every user interaction triggered a request to the server, which returned a fully rendered HTML page.
1315

14-
**Over-the-Wire** refers to a development approach where the server generates and sends **ready-to-render HTML fragments** directly to the client (browser).
15-
Unlike modern Single Page Applications (SPAs), which rely on JSON data and complex client-side rendering, Over-the-Wire keeps the frontend logic minimal and leverages server-side rendering for both initial load and dynamic updates.
16+
With the rise of **Single Page Applications (SPAs)**, UI rendering shifted to the browser.
17+
SPAs request **raw data (e.g., JSON)** from the server and build the UI dynamically using JavaScript frameworks like React, Angular, or Vue.
1618

17-
In simple terms:
18-
- The **server prepares the user interface** (UI) and sends it as HTML.
19-
- The **browser displays what the server sends**, without building the UI from raw data.
19+
While SPAs enable rich client-side experiences, they also introduce significant complexity:
20+
- API layers and data contracts
21+
- Separate frontend-backend development
22+
- Complex build & deployment pipelines
2023

21-
This approach reduces complexity and is especially suitable for applications where business logic resides on the server.
24+
As a response to this complexity, the **Over-the-Wire approach re-emerged**:
25+
- The **server renders UI fragments**, not full pages.
26+
- The **browser simply inserts those fragments** into the page.
27+
- The frontend remains simple and declarative.
2228

23-
## How does it differ from Single Page Applications (SPA)?
29+
Frameworks like **Hotwire (Rails)**, **Livewire (Laravel)**, and **Phoenix LiveView (Elixir)** are modern implementations of this concept.
2430

25-
In a typical SPA:
26-
- The client requests **raw data** (e.g., JSON) from the server.
27-
- The frontend JavaScript framework processes the data and builds the UI dynamically in the browser.
31+
## Architectural Comparison
2832

29-
In contrast, with Over-the-Wire:
30-
- The client requests **HTML fragments** directly from the server.
31-
- The server sends **fully rendered UI components**, which are inserted into the page.
33+
| Approach | Data Flow | Rendering Location |
34+
|----------|-----------|-------------------|
35+
| **SSR (classic)** | Full-page HTML responses | Entirely on the server |
36+
| **SPA** | Raw data (JSON), client builds UI | Client-side (JavaScript framework) |
37+
| **Over-the-Wire** | HTML fragments for partial updates | Server renders, browser inserts |
3238

33-
This shifts the responsibility for UI rendering back to the server, simplifying the frontend layer.
39+
## Related Frameworks with Similar Ideas
3440

35-
## Benefits of Over-the-Wire for Business Applications
36-
37-
- **Reduced Frontend Complexity**: No need for heavy JavaScript frameworks or complex build pipelines.
38-
- **Faster Time-to-Market**: Leveraging existing backend logic accelerates development.
39-
- **Better SEO & Accessibility**: Server-rendered HTML is immediately visible and indexable.
40-
- **Lower Maintenance Effort**: Fewer dependencies and simpler architecture.
41-
- **Efficient for CRUD Applications**: Ideal for forms, tables, dashboards, and admin tools.
41+
| Framework | Key Use Case | Technology |
42+
|-----------|--------------|------------|
43+
| **[htmx](https://htmx.org/)** | Progressive enhancement for server-rendered apps | Any web stack |
44+
| **[Hotwire (Turbo)](https://hotwired.dev/)** | Modern Over-the-Wire for Rails apps | Ruby on Rails |
45+
| **[Phoenix LiveView](https://hexdocs.pm/phoenix_live_view)** | Real-time server-rendered UIs | Elixir / Phoenix |
46+
| **[Livewire](https://livewire.laravel.com/)** | Server-driven UI components | PHP / Laravel |
47+
| **[Unpoly](https://unpoly.com/)** | Simplifies partial page updates | Any web stack |
48+
| **[Blazor Server](https://learn.microsoft.com/en-us/aspnet/core/blazor/)** | Server-side UI rendering with SignalR | .NET / C# |
49+
| **[Inertia.js](https://inertiajs.com/)** | SPA-like experience with server-driven UI | JavaScript + Laravel/Rails |
4250

43-
## Limitations to Consider
51+
## Over-the-Wire in abap2UI5
4452

45-
While Over-the-Wire offers significant advantages for backend-driven applications, it is less suitable for:
46-
- Highly interactive, real-time collaboration tools (e.g., design apps, chat platforms)
47-
- Applications requiring offline capabilities or rich client-side interactions
48-
- Scenarios where frontend and backend are developed by separate, independent teams
53+
**abap2UI5** adopts the Over-the-Wire principle but tailors it to SAP's technical environment:
4954

50-
## Popular Frameworks and Tools Following Over-the-Wire Principles
55+
- The **ABAP backend defines the UI** via a **view and a view model**.
56+
- This structured data is sent to the browser.
57+
- The **SAPUI5 runtime (static frontend code)** renders the UI dynamically based on this data.
58+
- The frontend code itself is **never generated dynamically**. It remains stable and generic.
59+
- All business logic, UI definitions, and dynamic behavior are maintained on the backend.
5160

52-
| Framework | Primary Use | Technology Stack |
53-
|-----------|-------------|-----------------|
54-
| **[htmx](https://htmx.org/)** | Enhances existing HTML pages with minimal JS | Technology-agnostic |
55-
| **[Hotwire (Turbo)](https://hotwired.dev/)** | Full Over-the-Wire framework for modern web apps | Ruby on Rails |
56-
| **[Phoenix LiveView](https://hexdocs.pm/phoenix_live_view)** | Real-time UI updates via WebSockets | Elixir / Phoenix |
57-
| **[Livewire](https://livewire.laravel.com/)** | Server-driven UI components for Laravel | PHP / Laravel |
58-
| **[Unpoly](https://unpoly.com/)** | Simplifies partial page updates without SPAs | Technology-agnostic |
59-
| **[Blazor Server](https://learn.microsoft.com/en-us/aspnet/core/blazor/)** | Server-side UI rendering with SignalR | .NET / C# |
60-
| **[Inertia.js](https://inertiajs.com/)** | SPA-like experience without APIs | JavaScript + Laravel/Rails |
61+
### Key Characteristics:
62+
- **Frontend code is static** (SAPUI5 components).
63+
- **Backend fully controls UI definitions and logic**.
64+
- No separate frontend development needed.
65+
- Aligns with SAP's technology stack while following Over-the-Wire principles.
6166

62-
## Over-the-Wire and abap2UI5
67+
## Benefits for SAP Applications
6368

64-
The **abap2UI5** framework adopts the fundamental idea of Over-the-Wire, but with a specific focus on SAP development environments.
65-
Instead of sending raw data to a generic frontend application, abap2UI5 delivers a **view and corresponding view model** from the ABAP backend to the client.
69+
- **Reduced Frontend Complexity**: No need for custom JavaScript development per app.
70+
- **Faster Development Cycles**: UI and logic are controlled via ABAP.
71+
- **Maintainable Architecture**: Reuse of SAPUI5 runtime, minimal frontend code.
72+
- **Seamless SAP Integration**: abap2UI5 fits into existing SAP systems.
73+
- **Ideal for Business Applications**: CRUD-heavy apps, forms, dashboards, transactions.
6674

67-
Unlike traditional Over-the-Wire frameworks that send ready-made HTML fragments, abap2UI5 leverages the existing SAPUI5 runtime in the browser to render the final HTML dynamically.
68-
However, this rendering is based on **static UI5 code**, which is **never changed or generated dynamically on the frontend**. All business logic, UI definitions, and dynamic behavior are controlled exclusively from the backend.
69-
70-
In summary:
71-
- The **frontend code remains static and generic**.
72-
- The **backend defines what the UI should look like**, including the data and behavior.
73-
- This approach preserves the **Over-the-Wire principles of simplicity and backend-driven UI control**, while integrating seamlessly with SAPUI5 technology.
75+
## Limitations to Consider
7476

75-
abap2UI5 thus bridges the gap between Over-the-Wire simplicity and the established SAPUI5 ecosystem, enabling efficient and maintainable web applications without introducing unnecessary frontend complexity.
77+
While Over-the-Wire (and abap2UI5) offers many advantages, it may not be suitable for:
78+
- Highly interactive, real-time collaboration tools (e.g., design apps, chat platforms).
79+
- Applications requiring offline capabilities.
80+
- Large-scale frontend projects developed independently from backend teams.
7681

7782
## Conclusion
7883

79-
Over-the-Wire represents a pragmatic approach for building web applications where the **server remains in control of UI rendering**.
80-
It aligns well with business contexts that prioritize **simplicity, maintainability, and tight integration of backend and frontend logic**.
84+
The **key idea of abap2UI5** is to apply the simplicity of the Over-the-Wire approach to the SAP world.
85+
It enables building efficient, maintainable business applications by shifting UI control back to the backend, while using SAPUI5 as a stable frontend runtime.
86+
87+
This reduces development complexity, shortens time-to-market, and ensures a clean architecture — without giving up the flexibility of SAPUI5.
8188

82-
For typical business applicationssuch as dashboards, forms, and administrative tools—Over-the-Wire offers a lean and efficient alternative to heavy SPA architectures.
89+
For typical business applicationssuch as forms, tables, and dashboards — abap2UI5 offers a pragmatic alternative to traditional SPA architectures.

0 commit comments

Comments
 (0)