Questions about application server architecture

Hello guys,
I have few questions about application server architecture�
I have a task to build a server application which will do the following: Clients (special java clients) will connect to it and send some data for further processing on server side. Chunks of data will be relatively small but they will take a lot of time for processing (it is ok that it will be quite slow).
Also server will run some sort of �database� where all clients� working data will be stored. So, in case a client loses its data he/she is always able to download it from the server.
For me it seems, like server will consist of the following components:
1. �Reception�. This part will be responsible for all client-communication procedures.
2. �Data storage�. This part will simply store all clients� data and provide some API interface for clients through �reception� to manage it (add/get/delete and so on).
3. �Processor�. Some sort of dummy-sophisticated module. It will take some input data from �data storage� when it receives order for this and process it. �Processor� will have two states: �busy� which means �processor� processing some data and �available� which means �processor� ready to process new data.
4. �Manager�. This part will always check �data storage� for new data and �processor� for availability. When �processor� and new data are available �manager� will make an order for �processor� to take new data from �data storage� and process it.
So, my question is the following: Which technology and approaches I should use to realize my plan?
I think that I can make �reception� as a Session Bean, but I don�t know yet, what are the best for the rest, for example �manager� and �processor�. I was thinking about writing my own application server (and I can do it), but I would like to learn j2ee technologies, so I think it is a perfect chance for me (I read a lot about j2ee before I wrote this post, but all examples have only �account�-�bill�-�money transfer� I think it is quite far away from reality or I am doing something wrong ;-)!
p.s. I am thinking about using JBoss as an Application Server. I tested it and wrote some tests. They work and run fast enough, so I like it. Moreover it has module architecture.
Please, give me some advises and tips!
Thank you in advance!

1. �Reception�. This part will be responsible for all
client-communication procedures.Session bean with remote interface.
2. �Data storage�. This part will simply store all
clients� data and provide some API interface for
clients through �reception� to manage it
(add/get/delete and so on).Session bean that will use entity beans or hibernate to work with persistant data.
3. �Processor�. Some sort of dummy-sophisticated
module.Use a message driven bean. Make Reception to enqueue a message when new data is available for processing. Processor will process the data and store the resut in database using Data Storage session bean.
4. �Manager�. This part will always check �data
storage� for new data and �processor� for
availability. When �processor� and new data are
available �manager� will make an order for
�processor� to take new data from �data storage� and
process it.It's redundand component, because application server will manage messages and processors.

Similar Messages

  • Application server architecture 2

    Hello guys,
    I have few questions about application server architecture�
    I already was asking similar question (http://forum.java.sun.com/thread.jspa?threadID=654898) and got few replies which were looking for me quite ok, but after reading more docs I doubt that suggested approach is right.
    So, I have a task to build a server application which will do the following: Clients (special java clients) will connect to it and send some data for further processing on server side. Chunks of data will be relatively small but they will take a lot of time for processing � up to one or two days.
    Also server will run some sort of �database� where all clients� working data will be stored. So, in case a client loses its data he/she is always able to download it from the server.
    For me it was seeming like server will consist of the following components:
    1. �Reception�. This part will be responsible for all client-communication procedures.
    2. �Data storage�. This part will simply store all clients� data and provide some API interface for clients through �reception� to manage it (add/get/delete and so on).
    3. �Processor�. Some sort of dummy-sophisticated module. It will take some input data from �data storage� when it receives order for this and process it. �Processor� will have two states: �busy� which means �processor� processing some data and �available� which means �processor� ready to process new data.
    4. �Manager�. This part will always check �data storage� for new data and �processor� for availability. When �processor� and new data are available �manager� will make an order for �processor� to take new data from �data storage� and process it.
    I got few suggestions:
    1. Make �Reception� stateless session bean. I agree with it. It is quite reasonable.
    2. Make �Data storage� as a session bean that will use entity beans or hibernate to work with persistent data. It is also seems quite reasonable and as it was suggested I would like to implement my own data access mechanisms instead of using those which provided by J2EE server.
    3. !!! �Processor�. Suggestion was the following: �Use a message driven bean. Make Reception to enqueue a message when new data is available for processing. Processor will process the data and store the resut in database using Data Storage session bean.� It is quite reasonable, except one little thing: I read that Message Driven Beans are not designed for long time processing. Moreover, for example in my JBoss server, Message Driven Beans have attribute KeepAliveMillis=30000. For me it seems that after 30 second my message driven bean will be killed by server and now I doubt: is message driven bean a good solution for implementation long time running processor?
    Now I am thinking that �processor� component should run as an additional application outside of J2EE server and from time to time (when data is finally processed and �processor� available again) send messages to my j2ee server.
    So, whole picture will look like this (please have a look on the picture: http://www.flickr.com/photos/77716401@N00/35565234/ ):
    1. j2ee server always on and ready to create �reception� session stateless EJB to serve remote clients. At the beginning it thinks that �processor� offline and doesn�t attempt to interact with �processor� in any way.
    2. When clients appear to interact with server they simply send or receive package of data without complex interaction. �Reception� simply receives data from clients, pass it to �data mapper� component and tells to �manager� that new data available for �processor� to process. �Data mapper� component stores received data in �database�.
    At this point j2ee server does two simple things:
    - Collecting information for further processing from remote users
    - Returning backups of received information to its owners.
    3. �Processor�. �Processor� talks with my j2ee application via �Manager� stateful EJB. When �processor� runs first thing it does it asks �manager� for data to process. If there is new no data to process, �processor� does nothing but �manager� remembers that �processor� is ready to work. If there is data to process �manager� passes data to �processor� and remembers that �processor� is busy.
    4. When �processor� finishes processing it does the following:
    a. Returns data to �manager�. �Manager� passes processed data to �Data Mapper�. �Data Mapper� stores processed data in database.
    b. Asks �manager� for new data to process if there is new data to process, �processor� does nothing but �manager� remembers that �processor� is ready to work. If there is data to process �manager� passes data to �processor� and remembers that �processor� is busy.
    5. When client submits new data �reception� tells to �manager� that new data available and it �processor� state is �ready for work� �manager� sends order to process to processor.
    And so on. Now for me it seems quite reasonable architecture.
    But, since I am very new in j2ee technologies I ask few questions:
    1. Is my approach right at total?
    2. Is it ok that I would like to make �Reception� stateless EJB, �Data Maper� BMP EJB and �manager� stateful EJB?
    3. I know that JMX is a basic concept of J2EE, so I would like to register my database as a resource in my J2EE server. Is it right?
    4. I need some sort of component which runs all the time from time server started till it is off. If there is anything like this?
    Please, give me some advises and tips!
    Thank you in advance!

    1. Navigating in SAP systems
    --Logon and structure of the user interface
    --Accessing functions in the system
    --Personalization options
    No, this is really nothing more than an introduction for people that have never seen a SAPgui screen before.  Most ABAPers can skip right over this course.  If you understand the NetWeaver architechure, then I would suggest to start withe BC400.
    Regards,
    Rich Heilman

  • Task of message server inside application server architecture

    Hi Folks,
          I have just started learning ABAP.
          And i have following queries in mind.
    what is the task of message server inside the application server architecture?
          Regards

    Hi,
    it's always to start with [SAP documentation|http://help.sap.com/SAPhelp_nw70/helpdata/en/fc/eb2e8a358411d1829f0000e829fbfe/content.htm]. You can have multiple application servers for one system. In this scenario application servers need to communicate. They use message server for this purpose. There is always just one message server for each system.
    Cheers

  • Several questions about Application Security

    Hello,
    I have several questions about Application Security and perhaps I need a few tips...
    I have a lot of users in a few groups which have access to my application! And the different groups should have only access to their pages.
    In my application I use trees to navigate through the application.
    So my idea is that i display different trees for the different user groups and restrict the user to access the URL....so the user can only see and contact "their" pages.
    I know how to create the logic behind the trees, but how can I create the restricted URL access...
    The "No URL Access" in the Session State Protection can not be used, because I use a lot of links in reports and HTML regions.
    Is there another way to solve that?
    But I am unsure if that is a "good" solution for my problem!
    What do you think about that?
    Am I going to do that too complicated?
    Could that be done by authentication or authorization?
    (By the way, I do not understand the differences between authentication and authorization. Can anyone help?)
    I would be glad for any reply!
    Thank you,
    Tim

    Hey Arie and Scott,
    thank you for your quick reply!
    Now I understand the context around authorization and authentication...
    I try the Access Control List and I think that is a very nice feature! Really good!
    But now I am wondering, how I can create more privileges?
    So that I have a few "end-user-roles" and then I can choose who have access to a page and who not!
    Does anybody know how to do that?
    Thank you,
    Tim

  • Question about three-tier architecture for MI

    Hi,
    my question is just for the right understanding. If we speak about three-tier architecture of MI is it right, that the following is meant:
    Client = Presentation Tier
    Middleware = Application Tier/Logic Tier/Business Logic Tier
    Backend = Data Tier
    Thank you and regards,
    Florian

    Hi Florian,
    ICF (Internet Communication Framework) is actually a framework provided by any WebAS. MI makes use of this to receive/send the data from/to the client. It is referred to as ABAP Sync Service in MI terminology. Data comes in the form of HTTP stream. A service is created to provide this functionality. It performs the same job as of the J2EE engine in the earlier versions. The advantage being that an intermediate component between the client & middleware is not necessary anymore, because ICF is part of the WebAS itself.
    You can have a look at this in the sicf transaction, provide the service name as MJC, under this u can see that there are 3 services which MI uses - mi_host, mi_service & mi_mds.
    You can set these parameters in the mobileengine.config file to make the client connect to ABAP Sync Service.
    MobileEngine.Sync.Gateway.Service=/sap/bc/MJC/mi_host
    MI.Sync.ProtocolVersion=251500
    I am in the process of writing a blog, please wait for it.
    Regards,
    Nameeta

  • Important conceptual question about Application Module, Maximum Pool Size

    Hello everyone,
    We have a critical question about the Application Module default settings (taking the DB connections from a DataSource)
    I know that on the Web it is generally suggested that each request must end with either a commit or rollback when executing PL/SQL blocks "directly" on the DB without the framework BC/ViewObject/Entity service intervention.
    Now, for some reasons, we started to develop our applications with thinking that each Web Session would reference exactly one DB session (opened by any instance taken from the AM pool) for the whole duration of the session, so that the changes made by each Web session to its DB session would never interfere with the changes made by "other" Web Sessions to "other" DB sessions .
    In other words, because of that convincement we often implemented sort of "transactions" that open and close (with either commit or rollback) each DB session not in/after a single HTTP request, but during many HTTP Requests.
    As a concrete example think of this scenario:
    1. the user presses the "Insert" button. An HTTP request is fired. The action listener is executed and ends up with inserting rows in a table via a PL SQL block (not via the ViewObjects API).
    2. no commit or rollback after the above PL/SQL block is done yet.
    3. finally the user presses a "Commit" or "Rollback" button, firing the call to the appropriate AM methos.
    Those three requests consist of what I called "transaction".
    From the documentation it's clear that there is no guarantee that the couple AM istance + DB session is the same during all the requests.
    This means that, during step 2, it's possible that another user might reference the same "pending" AM/DbSession for his needs and "steal" somehow the work done via PL/SQL after step 1. (This happens because sessions taken by the pool are always rolled back by default.)
    Now my question is:
    Suppose we set the "Maximum Pool Size" parameter to very a great number (always inferior to the maximum number of concurrent users):
    Is there any guarantee that all the requests will be isolated in that case?
    I hope the problem is clear.
    Let me know if you want more details.

    Thanks for the answers.
    If I am right, from all your answers about resource avaiability, this means that even supposing the framework is able to always give us the same AM instance back from the AM pool (by following the session-affinity criterias), there is, however, no "connection affinity" with the connections from the DataSource. This means that the "same AM instance" might take the "a new DB connection", if necessary, from the connection pool of the DataSource. If that happens, that could give us the same problems as taking "a new AM instance" (that is, not following session-affinity) from the beginning, since each time an a new connection is taken (either via a new AM instance or via the same AM instance plus a new DB connection), the corresponding DB session is rolle back by default, clearing all the pending transactions we might have performed before with direct PL/SQL calls bypassing the AM services during the life cycle of our application, so that the new HTTP request will have a clean DB session to start to work with.

  • I need information about Application Server Features

    I am looking for detailed information regarding what the Application Server offers and what are the possibilities, both Technichal and Business related. I have looked at the oracle web-site. But information seems to be scattered in multiple pdf and other documents. Is there a better source for the information?
    Thanks

    Hi,
    You can have a look at the Oracle Application Server Concepts 10g Release 2 (10.1.2) - it details the Technical & Business possibilities to a reasonable degree :-
    http://download-west.oracle.com/docs/cd/B14099_19/core.1012/b13994/toc.htm
    Regards,
    Sandeep

  • A question about VI server

    Dear all,
    I have some confusion about VI server. Suppose I
    have two computers, computer A will be used as a client
    and computer B will be used as server. A wants to get
    access to a VI (test.vi) on computer B. What
    requirements should computer B meet?
    1). Run LabVIEW?
    2). Run test.vi?
    3). Run test.vi by open VI reference?
    Does computer B should meet all the requirements?
    Thanks a lot for your help!
    Regards,
    Tao Song
    Mechanical Engineering Dept.
    Univ. of Maryland, Baltimore County

    Dear Mike,
    Thanks a lot for your help! I think I understand it
    now. Unlike the datasocket which has a separate server
    program, for VI server LabVIEW itself works as a
    server so it has to be runnig to listen to a port. Am I right?
    But I still have doubt that if test.vi has to be loaded
    into memory on computer B. If I use property and
    method node on computer A, such as FP Open and Run VI,
    can I remotely control computer B to load test.vi into memeory
    and run it?
    Thanks a lot! I really appreciate your help!
    Best regards,
    Tao
    "mikeporter" wrote in message
    news:[email protected]..
    > Computer B has to be running LV or LV runtime and test.vi has to be
    > loaded into memory and be ex
    ecutable (i.e. not broken).
    >
    > From Computer A you first open a reference to the copy of LV running
    > on Computer B. This means you have to know the name or IP address of
    > Computer B, and the port number that LV is listening to for
    > connections (which is configurable through the Options dialog box, or
    > by editing Computer B's *.ini file directly).
    >
    > Once you have the reference to the copy of LV, you open a reference to
    > the remote VI (test.vi) by name with a type specifier defining the
    > structure of test.vi's connector pane.
    >
    > Connect this VI reference to a Call by Reference Node and you can run
    > the remote VI.
    >
    > Be sure to close all the references when you are done with them as
    > this can cause a major memory leak...
    >
    > Mike...

  • About application server flat files

    I am comparing flat file with database table the flat file is in application server .flat fiel width is some 50000+records.I am executing the program it is continuously keep on executing i waited upto 5 hours still it is executing can u plz help me how to execute the report.

    Hi Pranitha
      I guess it will be better if you can post your code to identify if the problem is with the code or with the database.
      Alternatively, you can do below steps to identify whatz happening in the background.
    1. Go to Transaction SM50.
    2. Select the process(check box) where your job is executing.
    3. Use Menupath:  Program/Mode -> Program -> Debugging.
      By doing this it will open a new session in debugging mode of your current execution. Maybe by doing this it might help you identify if there are any problems like the index of the loop, no of records extracted from file, no of records from table...
      Hope the above info can lead you in resolving the problem.
    Kind Regards
    Eswar

  • About application server

    Hi All,
    I created a log file in application server, but lot of dump created in the file(very big file).
    I am using Delete dataset <filename> ,but that file is not deleting.
    Please help me.

    check if sy-subrc = 0.
    after delete dataset statement.
    First you open dataset for input which will retun sy-subrc if the file exists.
    then proceed for delete dataset
    Regards
    Vasu

  • About Application Server problem.

    My Application Server has installed Win2003 .
    Do i must install windows terminal server on the Win2003 if i want to run window application?

    Yes, you would need to have Windows Terminal Services enabled on the server first.
    See:
    http://docs.sun.com/source/819-4309-10/en-us/wcp/gettingstarted/terminal_server_config.html
    for additional configurations

  • Questions about RH Server features

    Hi Adobe users,
    we're considering to recommend RoboHelp Server as a
    publishing solution to a client. They are already using RoboHelp
    and want to make the contents available online. Another issue is
    centralized management of their help content documents. I'd be very
    glad if someone could answer the following questions:
    Is it possible to integrate RH Server
    with a CRM system or another user management system for
    authentication? Can it be integrated in a single sign-on
    infrastructure?
    How does the access control mechanism
    work? Can I set permissions who is allowed to publish certain
    documents/projects?
    Does it support workflows
    (review/accept/reject)? Or is this done using the staging
    server?
    Does it support content versioning?
    Or do we need RH SourceControl for that additionally?
    Does it support locking (check-in,
    check-out) of documents to allow concurrent editing?
    In short - does the RoboHelp server act as a document
    management system, or do the authors have to store the contents on
    their local computers and publish only the final version? Another
    issue is translation management - can the authors publish one
    language version, which is translated by other people (in other
    countries) and published to the same server?
    Thanks a lot in advance for any help!
    Andreas Hartmann

    Wow, Andreas. Welcome to the Forums.
    That's quite a laundry list!
    The answers are pretty much, "yes", if I understand
    correctly. That said, I don't know that much about CRMs, so your
    mileage may vary.
    To start, you might want to take a look at my article on the
    Adobe Developer Network for an overall perspective.
    Adobe
    RoboHelp Server 6 improves the feedback loop
    I view RoboHelp and RoboHelp Server as a "content" management
    rather than a "document" management system though this is a bit a
    semantics. Using variables, conditional build tags and Single
    Source Layouts, you can manage the content of your output in a
    fairly granular way (including to some level, your translation
    issues).
    In other words a team of multiple authors can manage the
    content of a website in the way you describe with a combination of:
    1. The authoring client (RoboHelp's main application) to
    develop content and manage it.
    2. RoboSource Control (for the check in, check out and
    versioning you mentioned) where authoring content source material
    is stored on a central server for backup and access by the team.
    3. RoboHelp Server for managing the authentication of who has
    access to the web server for publishing, etc. RoboHelp Server is an
    Active Server Pages application running on IIS, typically with a MS
    SQL Server or Oracle DB as the back end. As such, it uses Windows
    Server straightforward authentication methods. When you set up the
    author's project to publish to the server it will ask you for the
    Username and Password. Once this is configured, it's seamless from
    there. That login name/password can be the same as whatever you
    call your single sign-on pair as long as it conforms to the Windows
    Server scheme mentioned earlier.
    The RoboHelp author who may be designated as the "admin(s)"
    of the team can create and assign permissions from the authoring
    client and otherwise manage the Server site remotely without having
    to pester the Web Administrator for maintenance of the site.
    The staging server scenario you mention is an option that is
    completely up to your team and the IT folks. RoboHelp Server
    doesn't care one way or another. It's just an application sitting
    on a IIS web server. That server could be the "development or
    staging" server or the so-called "production" or live server.
    The different languages you mention could be published to the
    same server and comingled into a single site (kind of messy) or you
    could have different language sites (as long as they are different
    domains/IP addresses) sitting on the same RoboHelp Server enabled
    machine.
    Regarding language, one important item to research is the
    RoboHelp version you are using and it's language support. The
    much-anticipated Adobe RoboHelp 7 (now in beta and expected "before
    the end of the year") will have full Unicode/double byte character
    support for 35 languages and a wonderful way of handling
    translation workflows.
    Well, that should get you started. Let me know what I've
    missed!
    Thanx,
    john

  • The question about application priority in OCAP

    First question:
    I know the AIT includes priority for each application.
    But I find nothing about priority description in XAIT, may be I made a mistake about XAIT's structure.
    Second question:
    OCAP(10.2.2.5) define the priority range from 1 to 255. Where we can use this value, only in AIT?
    BRs.
    Alexander

    hi igor,
    you have to import the IDOC Types under the imported objects in the integration repository objects,
    what are all the data that coming out from the file adapter, you design the datatype.
    the target IDOC should be real and you do the mapping for the all necessary fields.
    refer: --
    File to IDOC:
    Re: how to Sending XML data to idoc
    IDOC Mapping:
    http://help.sap.com/saphelp_crm40/helpdata/en/77/a1d48b1ce06d40932e0a26f3c117ce/frameset.htm

  • Some questions about WLC 2504 architecture.

    Good Morning,
    I am in the process of implementing a 2504 with 14 LWAP's... The LWAP's are 1252 and 1262's but this should not matter in reference to my questions.
    Right now i have a test WLAN and Interface set up. 
    XXXXWIRLESS2 and the same for the interface. 
    Both of these are set up on VLAN 8 for test purposes.  My question revolves around the actually switching and routing of the information between the AP's and the controller. 
    I understand that cisco moved to FlexConnect in replacement of HREAP.  Why is this not a default?  it seems to me that the Gig port on the WLC would be a bottleneck for you if all traffic comes back over the CAPWAP tunnel.  Maybe i am not understanding the architecture of the device, but what positive benefit does this serve by sending all traffic back to the WLC instead of out the switches/router to its intended destination? 
    I am under the impression that FlexConnect should do all local switching, instead of sending traffic back over the CAPWAP tunnel.  To me this makes more sense and eliminates bottlenecks in the network. 
    Hopefully someone can enlighten me.
    Thank you,

    "Local" mode is the default mode for all the WLC, as the 5508 and WiSM2 have the ability to have greater than 1G connectivity to the LAN.  This is also partially a holdover from the Airespace days when all of the AP's actually directly connected to the WLC.
    Now for the 2504, I agree that if you have more than ~5 AP you should run in FlexConnect mode, especially if you have a lot of clients that are capapble of 'N' rates.  But it is not necessarily the way that all implementations will go.
    but again, that is IMHO.
    HTH,
    Steve
    Please remember to rate useful posts, and mark questions as answered

  • Question about Lion Server usage...

    Hi there!
    I'm new to Lion Server (at most, I had used the SL sharing preferences, but never the Server Admin or any of those tools...)
    I'm having some troubles understanding Lion Server. First of all... where are all the files stored?? I know the web server files are stored at /Library/Server/Web... but what about all mails, wikis, and those files?
    That is one question... the other one is... while fiddling with the wiki server I noticed that when I created a user, it's profile page is saved on the wiki and when I delete that user, the wiki document is still there! Wasn't it supposed to be deleted as I deleted the user itself?
    I can't seem to find a manual or something, only for SL Server not Lion.
    Can someone please help me out?
    Thanks!
    - Eduardo

    Eduardo
    At the moment there is very little for Lion Server. What little there is, is here:
    http://www.apple.com/uk/support/lionserver/
    and here:
    http://manuals.info.apple.com/en_US/lion_server_upgrading_migrating.pdf
    The administration manuals take some time to become available which is usually the case when Apple release a new version of the Server Version. However most of what's there does not change that much and generally the 10.6 Administration Manuals will contain most of what will eventually become the 10.7 Administration Manuals. Again this has always been the case going back to at least 10.3 Server. Technologies introduced in 10.5 Server such as CalDAV, Wiki and Blog etc did not change that much in 10.6. Apple also moved away from Cyrus as one of the Mail MDAs to Dovecot. But again the locations of where these were stored did not change. Going back to CalDAV and CardDAV these now appear to be amalgamated into one store.
    As ever with any version of the Server - regardless of platform or age - it's a good idea to have plenty of backups and to experiment first with a test/lab environment before rolling it out to a full production server.
    HTH?
    Tony

Maybe you are looking for

  • How to access the photos on icloud

    hi how to access the photos which i saved in i cloud, from my iPhone 5, Note: i do not use any PC. and i only have purchased 20 GB of space on an annual sub. so as to save my photos, and create space in my phone and now i am unable to access it, plea

  • My serial number for my PS elements 7 isn't working?

    I have had it for a really long time now. It had it on my old desktop and my old laptop but those both broke a while back. I figured out how to install it to my new computer but it keeps telling me that my serial number is wrong, any ideas?

  • Can I download something from the internet that is only meant for windows? Can I make it work with safari?

    I would like to download a business program from the internet, but it is only meant for windows.  Can I make it work on my mac?

  • LR4 Won't install.  Error The operation couldn't be completed.

    Trying to install LR4 upgrade and it won't install. Error msg when clicking the yellow package reads : The operation couldn't be completed. (com.apple.installer.pagecontroller error -1.) Couldn't open "Adobe Photoshop Lightroom 4.pkg". My system is a

  • Error in cartridge

    Hello, I was printing a document and suddenly it failed because of a cartridge problem in the color one. Now, I need to print this document urgently and even black ink printing would do but the software doesnt allow for such a procedure since its con