AUTOSAR_AP_EXP_SWArchitecture
FIG-fabcd9ce1130345d
607 × 542 px
1 Release(s)
Figure 8.11: Variant 1 - Skeleton Approach
SHA-256 Inhalts-Fingerabdruck:
fabcd9ce1130345d7a963b3da3d89fc97c10730d759f54b97561a3a71989ec1d
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: UML-Sequenzdiagramm mit Subsystem-/Prozessgrenze (
Application) und Interaktions-Rahmen (loop). - Architektur-Kontext: AUTOSAR Adaptive Platform (
ara::comCommunication Management / Platform Architecture,AUTOSAR_AP_EXP_SWArchitecture, Release R24-11). - Technischer Zweck: Spezifikation des Lebenszyklus und Nachrichtenaustauschs beim Service-Provider nach dem Skeleton-Ansatz (Variant 1). Das Diagramm modelliert das Zusammenspiel zwischen Applikationslogik, generiertem Service-Skeleton (
ServiceImpl) und der zugrundeliegenden Plattform-Infrastruktur (Functional Cluster, z. B. Communication Management Daemon / Service Discovery / IPC-Router).
2. Komponenten, Entitäten & Schnittstellen
- Entitäten & Lifelines:
Application(äußere Prozessgrenze / Packaging-Boundary): Gekapselter Linux/POSIX-Prozessraum der Adaptive Application.Application(Lifeline): Applikative Kontrolllogik (User Code), welche den Lebenszyklus des Service steuert.Service: ServiceImpl(Lifeline): Konkrete Instanz des generierten Skeletons (ara::com::Skeleton), die das typisierte Service-Interface implementiert.Functional Cluster(Lifeline): Plattform-Infrastrukturkomponente außerhalb des Anwendungsprozesses (typischerweise derara::com-Plattform-Daemon für SOME/IP- bzw. IPC-Binding).
- Stereotypen:
«aapInformative»: Kennzeichnet nicht-normative, herstellerspezifische Interaktionen zwischen dem Skeleton-Framework und dem Functional Cluster. Diese Aufrufe sind Implementierungsdetails der Middleware und nicht Teil der normativen C++-Applikationsschnittstelle.
3. Dynamisches Verhalten & Sequenzablauf
- Service Announcement (
Offer):- Die
Applicationruft synchronOffer(): ResultaufServiceImplauf (entspricht normativOfferService()). ServiceImplsignalisiert vianotify about offer()(«aapInformative») demFunctional Clusterdie Service-Verfügbarkeit (Trigger für SOME/IP Service Discovery bzw. lokales IPC-Publishing).- Nach Bestätigung durch den Cluster aktiviert das Skeleton lokal die Annahme von Anfragen via
enableServiceRequests()(«aapInformative»). Resultsignalisiert der Applikation die erfolgreiche Bereitstellung.
- Die
- Service Operation Execution (
loop-Block):- Wiederkehrend bei eingehenden Client-Aufrufen leitet der
Functional Clusterdie Anfrage viarequest service()(«aapInformative») anServiceImplweiter. ServiceImplführt intern die anwendungsspezifische MethodeServiceOperation()aus (Dispatching in den applikativen Servant-Code).- Das Ausführungsergebnis wird synchron/asynchron über den Return-Pfad von
request service()an denFunctional Clusterzur Weiterleitung an den Client übergeben.
- Wiederkehrend bei eingehenden Client-Aufrufen leitet der
- Service Revocation (
StopOffer):- Die
Applicationstößt den Shutdown viaStopOffer()aufServiceImplan (entspricht normativStopOfferService()). ServiceImpldeaktiviert unverzüglich die Annahme neuer Anfragen überdisableServiceRequests()(«aapInformative»).- Das Skeleton sendet
notify about stopoffer()(«aapInformative») an denFunctional Cluster(Trigger für SOME/IPStopOfferService-Nachricht bzw. IPC-Deregistrierung). - Der Aufruf kehrt zur
Applicationzurück; der Service ist offline.
- Die
4. Normative Relevanz & Entwickler-Hinweise
- API-Schnittstellenvertrag:
- Normativ: Ausschließlich
OfferService(),StopOfferService()und die Implementierung der Schnittstellen-Operationen (ServiceOperation()) innerhalb der von der generierten Skeleton-Basisklasse abgeleiteten KlasseServiceImpl. - Nicht-normativ: Sämtliche
«aapInformative»-Pfade. Entwickler dürfen sich nicht auf konkrete IPC-Mechanismen, Middleware-Daemons oder Signalwege zum Functional Cluster stützen; diese variieren je nach Vendor-Stack (z. B. Shared Memory vs. UNIX Domain Sockets).
- Normativ: Ausschließlich
- Concurrency & Thread-Modell:
ServiceOperation()wird im Kontext des Worker-Thread-Pools derara::com-Middleware ausgeführt. Entwickler müssenServiceImplthreadsicher und reentrant implementieren (bzw. entsprechende Serialisierungsmechanismen vorsehen).
- State-Invariante:
- Der interne Status
enableServiceRequests()vs.disableServiceRequests()garantiert, dass keine Requests an die Applikation zugestellt werden, bevorOffer()vollständig durchlaufen ist bzw. nachdemStopOffer()initiiert wurde. Dies verhindert Race Conditions beim Anwendungsstart und geordneten Herunterfahren über das Execution Management (ara::exec).
- Der interne Status
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.