three -tier architectures with JEE - apache

when I studied 3-tier architecture, I was told that it takes three servers:
1- web server
2- application server
3- BD server
By cons when I work in JEE, there is a single server that Glassfish or JBOS under which runs all the modules,
My question is how does 3-tiers architecture appear JEE, is it necessary to extract the web module from multi-third party applications and put it specially on a web server, for example apache and leave the EJB on glassfish?
enter image description here

Your diagram visualizes application and webcontainer separately but in case of application server, it contains itself web container/server. yes you can use only services which only rely on webserver instead of EJB. So if your specifically talking about java EE then Distributed Multitiered Applications and What is the difference between application server and web server?
helps you to understand.

Related

Is it possible to deploy a JAX-RS web service to MobileFirst Server?

My team is working on the migration of a hybrid app from Tibco Silver Mobile(TSM) platform to IBM MobileFirst Platform.
I have a JAX-RS webservice developed using Weblogic IDE which is currently hosted on TSM server. This webservice does a security check for all the incoming back-end requests and pass the request to the back-end if it is from a valid source.
When the app will be migrated from TSM to MobileFirst platform the TSM server will be moved out of the scene. I am looking for some alternate options for hosting this JAX-RS webservice. I don't want to make any changes to the webservice since it is a tested and proven code used in the TSM based solution.
I understand from the IBM MobileFirst Platform 7.0 documentation that JAX-RS support is now available on the MobileFirst Server and JAX-RS specification based Java adapters can be developed and deployed to the server.
Can I deploy the above mentioned webservice .WAR file as such to MobileFirst Server, without making any customizations?
If yes, what is the procedure for deploying the webservice (.WAR) to MobileFirst Server?
If no, what are the alternate options that can be considered?
As indicated in the comments above:
MFP Server is actually a Java EE application deployed to a supported Java EE application server, WebSphere Liberty or full WebSphere ND being the normal options, though TomCat is also supported.
In principle your own JAX/RS WAR file can be deployed to these same servers, the details will depend upon exactly what Java EE features you exploit and you will need to understand those Java EE servers' administration model. MFP itself is not affected by this, and you need no MFP knowledge to do it. You just need to understand the chosen Java EE server. Personally I would start with WebSphere Liberty.
A further question would be whether it is better to isolate your JAX/RS and Mobile First servers into their own Java EE server instances. It can be easier to manage and scale if you keep things separate, but technically there should be no interference if you do co-locate them. It is pretty trivial to spin up a dedicated Liberty server.
A more interesting question is whether there is value in actually exploiting the MFP Adapter capability to create JAX/RS services. In effect it's your familiar JAX/RS programming model but packaged slightly differently, deployed as a MFP adapter, and with the option explicitly to exploit the MFP security model and easily call other MFP adapters.
Personally, if I were coming to a project with no existing JAX/RS services and have commited to MFP and its security model then I would do my JAX/RS in the MFP Adapters.

AppFabric for WCF services on Windows Server 2008 R2

we are currently on windows server 2008 R2, IIS 7.5 and we are going to open some of our data via WCF services.
To do that, we are planing to host our services on IIS but I heard that it is not a good idea for WCF services.
The problem with the WAS is that it is general purpose hosting engine. it's actually unaware that it's actually hosting a WCF service or a website (as far as I know)
I heard that we can install an extension to the WAS called the Windows Server AppFabric.
does anybody have any experience on
AppFabric?
should my app have to use so called
'Service Bus' to use AppFabric?
should I go ahead and definitely
install it?
at most basic level, how and where
can I install it? does it require
any licence?
Thanks in advance.
I don't think IIS us a bad idea - many developers use IIS to host their WCF services. IMHO you'd only use what you need, so if all you need is a hosting framework, then IIS is a very good option for WCF services. It is (almost) unaware that it's hosting a WCF service, but that in the majority of the cases isn't an issue.
Windows Server AppFabric as it's currently released provides three capabilities: a distributed caching system (so if you need to scale out your service you can use this cache to share state among the nodes); a packaging / deployment interface (in which you can package a project and deploy it a little easier in IIS); and a management / monitoring interface (where you can monitor the instances of WCF and Workflow services which are running in your machine).
Answers to your questions:
Yes, some people have experience with it :)
No, the application doesn't have to use it. You'd only use the ServiceBus if you need its functionality (relay)
Only if you need it. If you don't need caching or the monitoring capabilities, for example, then I'd say you don't need it. I've found in the past that the least number of components I have in my system, the less likely it is to break.
Go to http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx. And AFAIK you don't need any license, but you can check on the download page to see if it has more information.
There is no real common reason why not to host a service in IIS/WAS.
If you want to absolutely, totally 100% make sure that your service is continuously running some process, such as a continuous loop or polling monitor, and if any interruption no matter how brief is a major issue, then you'd want to look at alternative hosts.
Win Server AppFabric is most useful for WF Service hosting and caching. Note however that Win Server AppFabric + Win Server Service Bus 1.0 represents the first steps in convergence between the Azure platform and the Windows Server private platform.... In other words, whichever of the two ways you choose, that's what is going to be earning your bread and butter in 5 years time.

Out Of Browser Silverlight app with local offline database and WCF-RIA

I have the following scenario:
We develop a silverlight 4 app for our customers, that will be used as an out-of-browser app. The app is working offline, i.e. app and database are on the users local machine. The app is using WCF-RIA-services to connect to the local database. The database will be an SQL Server Express, SQL Server CE or MySQL. We are using MVVMLight and MEF.
An external webserver is only used for updating the app from time to time or adding new modules to the app. To achieve this we do something similar as shown in Jeremy Likness blog (http://www.wintellect.com/CS/blogs/jlikness/archive/2010/05/25/silverlight-out-of-browser-dynamic-modules-in-offline-mode.aspx )
The reasons why we are doing such a scenario are complex. But to keep a long story short it is mainly for compatibility reasons for a later online version and we don't want to use WPF. So we need to get this working with Silverlight and WCF-RIA services.
Ok, that's the scenario and here's the question:
Do we need a local webserver in this scenario? The app is programmatically installed as out-of-browser, the database is local and connected via WCF-RIA.
If yes, which webserver would be sufficient? It should be installed and configured via an initial setup that is executed by the customer. The customer should not have to do anything with configuring the webserver.
Any other ideas or comments on this scenario? Any other possible solutions for this?
Thanks for your help
Dirk
silverlight wasn't meant to be used this way I think. So it would be like when you are developing app in visual studio and use Cassini to see result - everything runs locally - but you still need a web server. Maybe more info here - http://www.infoq.com/news/2010/06/WPF-vs-Silverlight
I´m not able to provide with a full answer to your problem, as we are currently facing the same problem. (WPF not being cross-platform, Very specific hardware on some clients)
But I may share some of our thoughts on our type of Thick-Silverlight-Client:
To keep deployment etc. simple we use a self-hosting process (installed as background process)
We may not use RIA as the background process has to run using Mono VM (but for MS-only solution see Can WCF RIA Services be self hosted? )
Architectural thoughts on standalone "Clients":
Depending on your requirements implementing a server for each client communicating with the "main"-server by messages (NServiceBus) may be overkill. But if you want to use a client database if offline and silverlight for ui you should consider using an event-driven-architecture.
There is a slideshow on combining "Event-Driven-Architecture" & "CQRS" with Silverlight. But i would not use it as a blueprint more like an inspiration.
http://www.slideshare.net/dennisdoomen/cqrs-and-event-sourcing-an-alternative-architecture-for-ddd

Glassfish appication server + application client on ipad

I have written an enterprise application on glassfish v2 application server with java application client. This application client is running on PCs with windows/linux OS. On server side I'm using EJBs. The task is to adopt additionally the client on ipads without/with minimal backend changes. And there are some options for that purpose. Which of there options is best choice? Or are there any other options?
to integrate Sun Glassfish Mobility Platform with Glassfish Enterprise v2 server on server side and to use Java ME on client side.
just to create an web module.
to develop client application using Objective-O/Cocoa and to provide its interaction with glassfish server. In this case it's impossible to use EJBs. I found out this integration is able with SOAP, but how it's works I don't know.
Any opinion will be very helpful!
Expose the EJBs as web services. Once you have a WS, you can create a number of different solutions to the problem. You could have a web app, that exposes some of the features of your solution and a native iPad app that does more (and would justify additional user investment [think freemium...])

Why use Glassfish instead of Apache? What's it strengths and weaknesses?

Sorry for my ignorance here, but when I hear the word webserver, I immediately imagine Apache, although I know people use Microsoft's IIS too. However since I've been hanging out here at Stackoverflow I've noticed lots of people use Glassfish.
Which made me wonder, why would I want to use Glassfish (in the sense that I'm interested, but I don't really understand why it might make my life easier). From what I read it's Sun's open-source derivate of Apache's Tomcat, thus I imagine it's a good (or great) quality product. But since I don't know its strengths and weaknesses, I don't know when it would be wise to choose Glassfish over another server. Could anyone elaborate ?
GlassFish is an Application Server which can also be used as a Web Server (Http Server).
A web Server means: Handling HTTP requests (usually from browsers).
A Servlet Container (e.g. Tomcat) means: It can handle servlets & JSP.
An Application Server (e.g. GlassFish) means: It can manage Java EE applications (usually both servlet/JSP and EJBs).
You should use GlassFish for Java EE enterprise applications.
The need for a seperate Web server is mostly needed in a production environment. You would normally find a Application server to be suffice most of your development needs. A web server is capable of holding larger number of active sessions and connections, thus providing the necessary balance without performance costs.
Stick to a simple web server if you are only working with servlets/jsps. It is also to be noted that in a netbeans environment, glassfish has better support than other App servers. In the context of eclipse though, WSAD and JBoss seem to the preferred options.
Glassfish will soon release the modular kernel.
This means that the containers you need start up and shutdown as you need them. I.e no EAR deployed, EJB container won;t start up. This seems to have made it very good for development as it can start and stop very quickly. This takes it a lot closer to development environments like Rails (where redeployment is a massive part of your development)
I have used GlassFish server for developing Web Services.
It provides a very interactive Admin Console where admin can test the Web Services.
I really find it helpful while developing Web Services