aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Knall <t.knall@datentechnik-innovation.com>2015-02-05 17:41:35 +0100
committerThomas Knall <t.knall@datentechnik-innovation.com>2015-02-05 17:41:35 +0100
commitf263394a3f470c3c4b02045394a29d8e48b6ff95 (patch)
tree3e370c44569ef07b8893007343a57803d1288bc0
parente8f5883a7982b8f5682c917f214d607a3cadb489 (diff)
downloadmoa-id-spss-f263394a3f470c3c4b02045394a29d8e48b6ff95.tar.gz
moa-id-spss-f263394a3f470c3c4b02045394a29d8e48b6ff95.tar.bz2
moa-id-spss-f263394a3f470c3c4b02045394a29d8e48b6ff95.zip
Add notes to module documentation.
-rw-r--r--id/server/doc/handbook/moduledevinfo/moduledevinfo.html31
1 files changed, 30 insertions, 1 deletions
diff --git a/id/server/doc/handbook/moduledevinfo/moduledevinfo.html b/id/server/doc/handbook/moduledevinfo/moduledevinfo.html
index c9cae99f3..949612509 100644
--- a/id/server/doc/handbook/moduledevinfo/moduledevinfo.html
+++ b/id/server/doc/handbook/moduledevinfo/moduledevinfo.html
@@ -97,6 +97,11 @@
</li>
</ol>
</li>
+ <li>
+ <p>
+ <a href="#hinweise">Hinweise</a>
+ </p>
+ </li>
</ol>
<hr />
@@ -194,12 +199,25 @@
<a name="tasks" id="tasks">2.1 Aufgaben (Tasks)</a>
</h2>
<p>
- Aus technischer Sicht sind Aufgaben einfache Klassen, die die abstrakte Klasse <code>at.gv.egovernment.moa.id.process.springweb.MoaIdTask</code> (moa-id-lib-xy.jar)
+ Aus technischer Sicht sind Aufgaben einfache Klassen, die die abstrakte Klasse <code>at.gv.egovernment.moa.id.process.springweb.MoaIdTask</code> (<code>moa-id-lib-xy.jar</code>)
implementieren. Diese definiert lediglich eine <code>execute</code>-Methode, die aufgerufen wird, sobald der Task
von der ProcessEngine gestartet wird. Über diese Methode erhält der Task Zugriff auf den ExecutionContext sowie
auf HttpServletRequest und HttpServletResponse. Der HttpServletRequest und der ExecutionContext können nun ausgewertet, bzw. falls notwendig der ExecutionContext und die HttpServletResponse auch manipuliert werden.
</p>
<p>
+ Synchrone Tasks werden hintereinander ausgeführt. Trifft die Process Engine auf einen asynchronen Task wird dieser
+ nicht gleich ausgeführt, sondern der Prozess wird zunächst angehalten. Bei asynchronen Tasks handelt es sich meist um Tasks,
+ die zuvor eine Benutzerinteraktion erfordern (z.B. Signatur mit Bürgerkartenumgebung).<br/>
+ Als Beispiel eines asynchronen Tasks wäre ein <code>VerifyIdentityLinkTask</code> zu nennen, der nach Eintreffen
+ der Antwort der Bürgerkartenumgebung auf der DataURL aufgeweckt wird, um eine <code>InfoBoxReadResponse</code> mit
+ der Personenbindung entgegen zu nehmen, diese zu parsen und zu validieren.
+ </p>
+ <p>
+ Die Aufgabe eines (DataURL-)Servlets, das den jeweiligen Prozess aufweckt, um die Ausführung eines nachfolgenden asynchronen
+ Tasks zu bewirken, übernimmt das interne Servlet <code>at.gv.egovernment.moa.id.auth.servlet.ProcessEngineSignalServlet</code>,
+ das auf die URL <code>/signalProcess</code> gemappt wurde.
+ </p>
+ <p>
Als Beispiele typischer Tasks können die Klassen im package <code>at.gv.egovernment.moa.id.auth.modules.internal.tasks</code> herangezogen werden.<br/>
</p>
@@ -344,6 +362,17 @@ at.gv.egovernment.moa.id.auth.modules.mymodule.MyAuthModuleImpl</pre>
</span></div>
<p style="clear:left;">&nbsp;</p>
+ <h1>
+ <a name="hinweise" id="hinweise">4 Hinweise</a>
+ </h1>
+ <p>
+ Um einzelne Funktionen als Plug-In umzusetzen, muss nicht unbedingt ein ganzer Prozess definiert werden. MOA-ID ab
+ Version 2.3 unterstützt die Servlet 3.0 API, was u.a. den Einsatz von <code>@WebServlet</code>-Annotations ermöglicht.
+ Damit entfällt eine statische Registrierung von Servlets im <code>web.xml</code>.
+ </p>
+ <p>Am Beispiel des MonitoringServlets (<code>at.gv.egovernment.moa.id.auth.servlet.MonitoringServlet</code>), das als
+ separates JAR (<code>moa-id-module-monitoring-xy.jar</code>) ausgeführt wurde, kann dies anschaulich beobachtet werden.
+
<p>&nbsp;</p>
<p>&nbsp;</p>
</body>