2009-07-31 4 views
4

Also ich habe einen Client, der Tomcat für verschiedene Dinge laufen muss (Solr und ein Webservice) und nachdem ich ein Treffen mit ihm und einem anderen Programmierer des Projekts hatte, wurde ich etwas verwirrt. Der andere Programmierer warf Schlagworte herum und sagte Dinge wie "Wir brauchen Middleware für den Kater". Als Antwort darauf bittet mich mein Klient, nach Middleware für Tomcat zu suchen, was mich verwirrte, weil ich dachte, dass das Schreiben eines Webservice spezifisch für das vorliegende Projekt wäre und die "Middleware" von uns entwickelt würde. Wenn das der Fall ist, warum nicht einfach "Webservice" sagen?Ist Tomcat Middleware?

Meine Frage ist: Gibt es ein Open-Source-Servlet oder Plug-in für Tomcat, das Middleware macht (vielleicht etwas von der Apache-Website?) Oder macht es Sinn, dass ich meine eigene Middleware für Tomcat schreibe? Oder ... ist Tomcat Middleware? Ich bin insgesamt n00b, wenn es um Java und Tomcat geht, aber ich habe viel Erfahrung mit C#, also versuche ich herauszufinden, wie das mit C# zusammenhängt. Ich habe den Begriff "Middleware" noch nie zuvor verwendet und bin mir ziemlich sicher, dass "Webservice" so ziemlich das Gleiche ist.

Irgendwelche Ideen?

+5

Wenn Sie nach einer Definition von Middleware gegoogelt haben, was haben Sie gefunden? –

+2

erster Fehler: diskutieren ohne Begriffe zu definieren. zweiter Fehler: Versuch, ein plattformspezifisches Problem mit Wissen für andere Plattform – Javier

+0

@ S.Lott zu lösen Ich fand Wikipedia Definition von Middleware, die mir erklärte, was es in einem allgemeinen Sinne war. Es war hilfreich, aber es brachte mich dazu, diese Frage zu veröffentlichen, z. – DJTripleThreat

Antwort

5

Alle diese Antworten sind zu ausführlich. Ja, Tomcat ist Middleware. Es befindet sich zwischen der HTML/Javascript-Ebene im Browser des Clients und der Datenbankebene auf Ihrem Server. Es ist nicht so voll ausgestattet wie ein J2EE-Server, aber es ist immer noch "Middleware", soweit das allgemein akzeptierte Schlagwort-Begriff geht.

+1

Sie haben die richtige Idee über die Antwort, die ich suchte. Auf den Punkt, danke! – DJTripleThreat

3

Der Begriff Middleware wird normalerweise verwendet, um Software zu beschreiben, deren Zweck es ist, zwei verschiedene Systeme miteinander zu verbinden.

Wenn Sie Webdienste über eine andere Anwendung schreiben und die dritte Anwendung mit den Webdiensten kommuniziert. Dann schreibst du Middleware.

Wenn Sie im Allgemeinen in einer .NET-Umgebung arbeiten und einige Systeme auf Tomcat installiert sind. Dann war es wahrscheinlich, dass der andere Programmierer behauptete, dass die Middleware geschrieben werden müsste, um die .NET-Anwendungen mit den Java-Anwendungen auf Tomcat zu verbinden. (Er hat wahrscheinlich Recht.)

0

Middleware ist buchstäblich nur eine Software, die in der Mitte von 2 Systemen sitzt. Es macht Dinge wie wenn ein System XML über HTTP spricht, das andere System spricht COBOL. Middleware kann die Übersetzung zwischen den beiden Systemen durchführen.

Viele der "Middleware" im J2EE-Raum sind nur Software auf einem J2EE-Container. Tomcat ist leider kein vollwertiger J2EE-Container, sondern implementiert lediglich die Servlet-Spezifikation. Aus diesem Grund gibt es keine Unterstützung für andere J2EE-Einrichtungen wie JMS, EJB, SMTP usw., was seine Fähigkeit zur Verbindung mit anderen Systemen einschränkt.

Wenn Sie jedoch mit modernen Systemen arbeiten, kann eine große Menge an Software auf tomcat ausgeführt werden, die es Ihnen ermöglicht, sich mit einem anderen System über einen SOAP-basierten Webservice zu verbinden. In diesem Fall benötigen Sie kein separates Middleware-System.

Alles in allem, identifizieren Sie, mit welchen Systemen Sie sich jetzt verbinden müssen, welche Systeme Sie für die nahe Zukunft benötigen und Keep It Stupid and Simple (KISS). Vertrauen Sie nicht blindlings den Verkäufern, die behaupten, ihre Middleware würde Kaffee machen und sie dem CEO täglich liefern, wenn sie das sagen müssen, um den Verkauf zu machen.

In Bezug auf "Web-Service" bedeutet Web-Service wirklich alles, was Sie aus dem Internet anrufen können. Es kommt also wieder auf Ihre Zielgruppe an. Wenn Sie mit externen Anbietern kommunizieren, die mit dem SOAP-basierten Web-Service vertraut sind, haben Sie eine große Auswahl. Wenn Ihre Zielgruppe jedoch Ihren Dienst durch Tweeten mit Ihrem Tweeter-Konto anrufen möchte, handelt es sich auch um einen Webdienst.

0

Sie können zu Recht das Label "Middleware" auf alles klopfen, das über separate Clients und Back-Ends verfügt. Das Problem ist nicht, wie Sie es nennen, sondern ob das "es" die richtige Architektur/Technologie für die Situation ist.

0

Ich denke, die offensichtliche Antwort wäre, "Middleware für Tomcat, was zu tun?"

Wenn die Antwort der Person lautet: "Um zwischen der Datenbank und dem Browser zu stehen", lautet die richtige Antwort "Tomcat is Middleware".

Wenn die Antwort lautet: "Um zwischen unserem Sicherheitsserver und Tomcat zu stehen", lautet die Antwort wahrscheinlich "Okay, wir müssen prüfen, ob wir solche Software bereits im Haus haben oder ob wir sie erwerben oder aufbauen müssen es."

Im wirklichen Leben, wenn diese Art von Sache kommt, ist die Antwort, die ich oft bekomme eher wie: "Weil ich in einem Magazin gelesen habe, dass Web Middleware die neueste Spitzentechnologie ist und wir sollten es verwenden" oder "Umm , weil ich irgendwo gehört habe, dass man immer Middleware oder Metalware oder ähnliches braucht ", dann lautet die richtige Antwort:" Wenn Sie das Problem identifiziert haben, können wir Lösungen diskutieren. Wir sollten uns nicht für eine Lösung entscheiden und dann suchen für ein Problem, das es lösen könnte. "