Driver Architecture design question

Hi,
I want to move from a system design which uses an intermediate user space process to co-ordinate requests going to a device to one where the applications communicate directly with the driver.
This will mean handling queues of requests in the driver and ideally multiple user threads calling into the driver submitting requests and (probably) waiting for the responses.
My question is...what is the best architecture to use for such a system. It does not properly map to the traditional read/write style of driver I/O and I was thinking I could use the ioctl interface to submit a structure that contained the request and space for the response. In the ioctl call the request could be added to a queue going to the device and the call could block waiting for receipt of the response.
I'm not sure that this is the best way to go about this (Is ioctl really meant for this kind of operation and will it scale?) and I'd be very grateful for any suggestions.
Thanks in advance,
Diarmuid

Yes, ioctls are commonly used for this sort of thing.

Similar Messages

  • Architecture/Design Question with best practices ?

    Architecture/Design Question with best practices ?
    Should I have separate webserver, weblogic for application and for IAM ?
    If yes than how this both will communicate, for example should I have webgate at both the server which will communicate each other?
    Any reference which help in deciding how to design and if I have separate weblogic one for application and one for IAM than how session management will occur etc
    How is general design happens in IAM Project ?
    Help Appreciated.

    The standard answer: it depends!
    From a technical point of view, it sounds better to use the same "midleware infrastructure", BUT then the challenge is to find the lastest weblogic version that is certified by both the IAM applications and the enterprise applications. This will pull down the version of weblogic, since the IAM application stack is certified with older version of weblogic.
    From a security point of view (access, availability): do you have the same security policy for the enterprise applications and the IAM applications (component of your security architecture)?
    From a organisation point of view: who is the owner of weblogic, enterprise applications and IAM applications. In one of my customer, application and infrastructure/security are in to different departments. Having a common weblogic domain didn't feet in the organization.
    My short answer would be: keep it separated, this will save you a lot of technical and political challenges.
    Didier.

  • Architecture Design Question: Integrating AMF and HTTP/REST

    We have an app that is consuming services from blazeds over an AMF channel. This approach replaced an earlier implementation that consumed SOAP services. This took place before I inherited the project. Apparently, there were tremendous performance gains in switching to AMF and we don't want to abandon it. 
    Now we are creating a new RESTful, HTTP Request/Response-based service layer that will be shared across several organizations and the idea is that anyone can then write clients to grab our data (as well as data from other repositories in other organizations that implement the common service API). The services include output handlers that are designed to return data in various formats that the user might request (e.g., csv, xml, JSON, AMF???).
    My question is about how to keep the performance benefits of AMF for our Flex client as the new services move to the HTTP/REST architecture.
    Our current thinking is to add the blaze jars to the new webapp and use the message broker to route as you normally would, but the destination would essentially be an adapter class that can take the AMF requests and pass them on to the RESTful access points of our services, and then transform the response back to AMF.
    I just started reading Shashank Tiwari's Professional BlazeDS and came across the chapter on using blaze as a server-side proxy. Is this a viable approach for what I am trying to do? I also see references to extending blaze by creating custom adapters. Is this the right track? I'm sure this is a common problem. I'm looking for a discussion on possible solutions. Andy ideas?

    Hi,
    In Lync server 2013 Stretched pools are not supported for the Front End, Edge, Mediation, and Director server roles. It need two Lync pools.
    If one pool fail to connect, An administrator can declare an emergency and fail over the pool to the backup pool.  That is done by using the:
    Invoke-CsPoolFailover –PoolFQDN <Pool fqdn> –DisasterMode –Verbose
    More details:
    http://blog.avtex.com/2012/07/26/understanding-lync-2013-server-failover/
    Note: Microsoft is providing this information as a convenience to you. The sites are not controlled by Microsoft. Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information
    found there. Please make sure that you completely understand the risk before retrieving any suggestions from the above link.
    Best Regards,
    Eason Huang
    Eason Huang
    TechNet Community Support

  • Architecture design question: layers of components

    I am sooo confused about how to combine components, and when I should inherit, and when stuff goes in skins. I have a custom component Tile that looks like this:
    Source (simplified) looks like this:
    <s:SkinnableContainer skinClass="skins.TileSkin">
         <fx:Script>
              <![CDATA[
                   [Bindable] public var tileColor:uint = 0xFF0000;     // Base color of the tile.  The center area will be this color.
                   [Bindable] public var tileThickness:uint = 4;          // How high the tile appears to have its center part raised.
              ]]>
         </fx:Script>
    </s:SkinnableContainer>
    All the drawing happens in the skin.  I subclassed this component to have a LabeledTile:
    Source (simplified) looks like this:
    <components:Tile>
         <fx:Script>
              <![CDATA[
                   protected static const PADDING:int = 3;
                   public function get text1():String { return Label1.text; }
                   public function set text1( str:String ):void { Label1.text = str; }
              ]]>
         </fx:Script>
         <s:Label id="Label1" x="{tileThickness}" y="{tileThickness}"
              height="{height - 2 * tileThickness}" width="{width - 2 * tileThickness}"
              maxDisplayedLines="1" textAlign="center" verticalAlign="middle"
              paddingLeft="{PADDING}" paddingTop="{PADDING}" paddingRight="{PADDING}" paddingBottom="{PADDING}"/>
    </components:Tile>
    I want to have a subclass of LabeledTile called LabeledTileWithGizmo that looks like this:
    I thought this would work:
    <components:LabeledTile width="130" height="32" tileColor="0x0077EE"
                        contentCreationComplete="ContentCreated()">
         <fx:Script>
              <![CDATA[
                   private function ContentCreated():void
                        Label1.setStyle( "fontSize", 14 );
                        Label1.setStyle( "color", 0xFFFFFF );
                        Label1.setStyle( "fontFamily", "Trebuchet MS Bold, Arial, Helvetica, _sans" );
              ]]>
         </fx:Script>
         <components:Gizmo x="100" y="4" height="24"/>
    </components:LabeledTile>
    The gizmo shows up on the tile, but the label disappears.  If I put the Gizmo component right next to the Label component in the LabeldedTile, they both get drawn.  But I want to have labeled tiles that don't have gizmos, as well as ones that do.  I also want to have different types of gizmos.
    So, should I have one subclass of Tile with optional subcomponents?  And how would I do that?
    Should I be putting more of this in TileSkin?  And have the alternate components be states in the skin?
    Should I have a different skin for each of Tile, LabeledTile, and LabeledTileWithGizmo?  Should the second skin inherit from the first skin, and the third from the second?
    Can I have a skin for a component set styles on a subcomponent (e.g. having a LabeledTile set the fontSize, etc. on the Label subcomponent)?  Or is that even possible.
    I am sooo confused on how all these pieces should fit together.  Any insight would be appreciated.

    Your MXML for LabeledTile has Label1 as a child element in MXML.  When you subclass that class using MXML (<components:LabeledTile ...) then whatever child elements you put in that subclass will replace what you had declared in the LabeledTile.
    Sounds like what you want to do is subclass SkinnableContainer to have a label skin part and move your label into the skin.  That way when you add child elements to your container it won't replace the label with your child elements.
    This article is a good start to learn about spark skinning: http://www.adobe.com/devnet/flex/articles/flex4_skinning.html
    If you follow the approach above then here are some answers to your specific questions:
    So, should I have one subclass of Tile with optional subcomponents?  And how would I do that?
    >> You could make the Label an optional skin part so if someone didnt want the Label to show up then they would create a custom skin that didn't include it.  Another approach would be to consider exposing a showLabel property on your component that would control the visibility of the Label skin part.
    Should I be putting more of this in TileSkin?  And have the alternate components be states in the skin?
    >> Yes move the Label to the skin.  You could use states or expose a showLabel property as I mentioned above.
    Should I have a different skin for each of Tile, LabeledTile, and LabeledTileWithGizmo?  Should the second skin inherit from the first skin, and the third from the second?
    >> Sounds like you could do this all with one component and one skin by adding another custom skin part for the gizmo. Inheritance via MXML skins is not trivial to implement.
    Can I have a skin for a component set styles on a subcomponent (e.g. having a LabeledTile set the fontSize, etc. on the Label subcomponent)?  Or is that even possible.
    >> Yes you should be able to do that, just call setStyle on the skin part

  • Architecture / Design Question

    Let's say I have a list of objects. Is it better to store them in a single file, one after another or in individual files? On one hand, to retrieve a specific object, it would be better to have them in individual files, because I can search through them easily by filename as opposed to looping through a single large file. On the other hand, if I wanted to print some specific part of every file, I would only have to loop through one file rather than open and close several file streams.
    Suggestions?

    Suggestions?I'd say in a static situation where objects don't change size it's better to store them on a single file. You can always have a list of pointers (a directory) to where each object starts within the file. The directory can be held at the beginning of the file or stored on a separate file.

  • LDAP design question for multiple sites

    LDAP design question for multiple sites
    I'm planning to implement the Sun Java System Directory Server 5.2 2005Q1 for replacing the NIS.
    Currently we have 3 sites with different NIS domains.
    Since the NFS over the WAN connection is very unreliable, I would like to implement as follows:
    1. 3 LDAP servers + replica for each sites.
    2. Single username and password for every end user cross those 3 sites.
    3. Different auto_master, auto_home and auto_local maps for three sites. So when user login to different site, the password is the same but the home directory is different (local).
    So the questions are
    1. Should I need to have 3 domains for LDAP?
    2. If yes for question 1, then how can I keep the username password sync for three domains? If no for question 1, then what is the DIT (Directory Infrastructure Tree) or directory structure I should use?
    3. How to make auto map work on LDAP as well as mount local home directory?
    I really appreciate that some LDAP experta can light me up on this project.

    Thanks for your information.
    My current environment has 3 sites with 3 different NIS domainname: SiteA: A.com, SiteB:B.A.com, SiteC:C.A.com (A.com is our company domainname).
    So everytime I add a new user account and I need to create on three NIS domains separately. Also, the password is out of sync if user change the password on one site.
    I would like to migrate NIS to LDAP.
    I want to have single username and password for each user on 3 sites. However, the home directory is on local NFS filer.
    Say for userA, his home directory is /user/userA in passwd file/map. On location X, his home directory will mount FilerX:/vol/user/userA,
    On location Y, userA's home directory will mount FilerY:/vol/user/userA.
    So the mount drive is determined by auto_user map in NIS.
    In other words, there will be 3 different auto_user maps in 3 different LDAP servers.
    So userA login hostX in location X will mount home directory on local FilerX, and login hostY in location Y will mount home directory on local FilerY.
    But the username and password will be the same on three sites.
    That'd my goal.
    Some LDAP expert suggest me the MMR (Multiple-Master-Replication). But I still no quite sure how to do MMR.
    It would be appreciated if some LDAP guru can give me some guideline at start point.
    Best wishes

  • Design question for database connection in multithreaded socket-server

    Dear community,
    I am programming a multithreaded socket server. The server creates a new thread for each connection.
    The threads and several objects witch are instanced by each thread have to access database-connectivity. Therefore I implemented factory class which administer database connection in a pool. At this point I have a design question.
    How should I access the connections from the threads? There are two options:
    a) Should I implement in my server class a new method like "getDatabaseConnection" which calls the factory class and returns a pooled connection to the database? In this case each object has to know the server-object and have to call this method in order to get a database connection. That could become very complex as I have to safe a instance of the server object in each object ...
    b) Should I develop a static method in my factory class so that each thread could get a database connection by calling the static method of the factory?
    Thank you very much for your answer!
    Kind regards,
    Dak
    Message was edited by:
    dakger

    So your suggestion is to use a static method from a
    central class. But those static-methods are not realy
    object oriented, are they?There's only one static method, and that's getInstance
    If I use singleton pattern, I only create one
    instance of the database pooling class in order to
    cionfigure it (driver, access data to database and so
    on). The threads use than a static method of this
    class to get database connection?They use a static method to get the pool instance, getConnection is not static.
    Kaj

  • Database Connection design question

    Hello, I have a design question. Awhile back I needed to create a database connection to SQL Server, so I created a class to do it
    import java.sql.*;
    import java.io.*;
    import java.net.MalformedURLException;
    import org.w3c.dom.Document;
    import org.w3c.dom.*;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import org.xml.sax.SAXException;
    import org.xml.sax.SAXParseException;
    public class SQLServerConnection
         private static Connection connection = null;
         public SQLServerConnection(String user, String password, String dbName) throws java.sql.SQLException
              getDBConnection(user, password, dbName);
         public SQLServerConnection(String configFileName) throws java.sql.SQLException
              getDBConnection(configFileName);
         private void getDBConnection(String user, String password, String dbName) throws java.sql.SQLException
             DriverManager.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver());
             connection = DriverManager.getConnection(
                  "jdbc:microsoft:sqlserver:" + dbName, user, password);              
         private void getDBConnection(String configFileName) throws java.sql.SQLException
              String user;
              String password;
              String dbName;
              try
                   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                   DocumentBuilder db = factory.newDocumentBuilder();
                   Document doc = db.parse(configFileName);
                   doc.getDocumentElement().normalize();
                   // get the configuration information
                   password = getConfigParameter("password", doc);
                   user = getConfigParameter("username", doc);
                   dbName = getConfigParameter("databasename", doc);
                   getDBConnection(user, password, dbName);
              catch (MalformedURLException murle)
                   System.out.println("Unable to connect to: " + configFileName + " -- " + murle);
                   System.exit(1);
              catch (FileNotFoundException fnfe)
                   System.out.println("Configuration file " + configFileName + " not found.");
                   System.exit(1);
              catch (IOException ioe)
                   System.out.println("IOException: " + ioe);
                   System.exit(1);
              catch (javax.xml.parsers.ParserConfigurationException pce)
                   System.out.println ("Parser Configuration Error: " + pce);
              catch (SAXException saxe)
                   System.out.println ("SAXException: " + saxe);
         private String getConfigParameter(String paramName, org.w3c.dom.Document doc)
              NodeList nl = doc.getElementsByTagName(paramName);
              if(nl != null)
                   Node n = null;
                   for (int i = 0; i < nl.getLength(); i++)
                        n = nl.item(i);          
                        if(n.hasChildNodes())
                             NodeList children = n.getChildNodes();
                             return ((Node)children.item(0)).getNodeValue();
              else
                   System.out.println ("nl is null");
              return "";          
         public void setCatalog(String catalogName) throws java.sql.SQLException
              connection.setCatalog(catalogName);
         public Connection getConnection()
              return connection;
         public void closeConnection()
              try
                   connection.close();
              catch(java.sql.SQLException sqle)
                   System.err.println ("SQL Server Connection failed to close: " + sqle);
    }Later on, I needed to do the same thing for MySQL, so I created a class for that, MySQLServerConnection which is exactly the same as above, except for:
    private void getDBConnection(String user, String password, String dbName) throws java.sql.SQLException
              try
                   Class.forName("com.mysql.jdbc.Driver").newInstance();
                   connection = DriverManager.getConnection(dbName, user, password);     
              catch(java.lang.ClassNotFoundException cnfe)
                   System.out.println (cnfe);
              catch(java.lang.InstantiationException ie)
                   System.out.println (ie);
              catch(java.lang.IllegalAccessException iae)
                   System.out.println (iae);
         }Later, on, I did the same thing with OracleServerConnection. My question is, I know this is probably not optimal code. For example, I didn't originally have a close connection method, so I had to go in and code one for all 3. I'm assuming that an interface would be a good idea so that if I have to code another database connection class I make sure and include all of the appropriate methods. I'm also assuming that it would have been smart to have a master class, maybe something like DatabaseConnection and extended these classes from that. Am I on the right track? Totally offbase?

    @nclow - I will work on trying the Factory Pattern for this over the weekend and post when I finish to see what you think.
    @abillconsl - just to make sure I understand, you're saying that I just try to connect and it will cycle through the different database connection possibilities and connect when it finds the right one? If it fails all 3, log an appropriate message. One question I have about this is, I thought I was being object oriented by separating the different types of db connections (Oracle, SQL Server, MySql) into different classes. Am I missing the point of OOP by what I was/am trying to accomplish? Going overboard? Also, does your way try and connect to all 3 even if I connected to one already?
    Thx, Grantarchy
    Edited by: grantarchy on May 9, 2008 9:50 PM

  • Global Architectural design for SharePoint 2013??

    Hi Friends,
    i am trying to pursue SharePoint 2013 global Architectural design before we implement SharePoint 2013 farm. FYI, Our Current SharePoint 2010 farm is three tier farm (2 web servers + 2 App servers + cluster Sql server) and total users 1,000 and its
    located in one data center. From this farm we are serving now SP site to five different countries in the world via WAN. But as our company growing rapidly, we want share point will provide robust performance. As our company globalized, how many data center
    we will need? Can we have one centralized farm in USA and other regional SharePoint farms into different countries? According to my business scenario, what will be the best architectural design?
    Any help will be appreciated!!

    "It depends" would be the answer with the information given. It depends on how much content is accessed at any one location, if a WAN accelerator could alleviate any issues end users at the remote locations were seeing, and if the company can take on the
    added complexity, extra licensing, and hardware cost that are associated with SharePoint farms.
    It would also depend if you want to replicate content (e.g. Metalogix Replicator) or if each farm will have its own unique content targeted at the specific region.
    Trevor Seward
    Follow or contact me at...
    &nbsp&nbsp
    This post is my own opinion and does not necessarily reflect the opinion or view of Microsoft, its employees, or other MVPs.

  • Design question: Scheduling a Variable-timeslot Resource

    I originally posted this in general java programming, because this seemed like a more high-level design descussion. But now I see some class design questions. Please excuse me if this thread does not belong here (this is my first time using the forum, save answering a couple questions).
    Forum,
    I am having trouble determining a data structure and applicable algorithm (actually, even more general than the data structure -- the general design to use) for holding a modifiable (but more heavily read/queried than updated), variable-timeslot schedule for a given resource. Here's the situation:
    Let's, for explanation purposes, say we're scheduling a school. The school has many resources. A resource is anything that can be reserved for a given event: classroom, gym, basketball, teacher, janitor, etc.
    Ok, so maybe the school deal isn't the best example. Let's assume, for the sake of explanation, that classes can be any amount of time in length: 50 minutes, 127 minutes, 4 hours, 3 seconds, etc.
    Now, the school has a base operation schedule, e.g. they're open from 8am to 5pm MTWRF and 10am to 2pm on saturday and sunday. Events in the school can only occur during these times, obviously.
    Then, each resource has its own base operation schedule, e.g. the gym is open from noon to 5pm MTWRF and noon to 2pm on sat. and sun. The default base operation schedule for any resource is the school which "owns" the resource.
    But then there are exceptions to the base operation schedule. The school (and therefore all its resources) are closed on holidays. The gym is closed on the third friday of every month for maintenance, or something like that. There are also exceptions to the available schedule due to reservations. I've implemented reservations as exceptions with a different status code to simplify things a little bit: because the basic idea is that an exception is either an addition to or removal from the scheduleable times of that resource. Each exception (reservation, closed for maintenance, etc) can be an (effectively) unrestricted amount of time.
    Ok, enough set up. Somehow I need to be able to "flatten" all this information into a schedule that I can display to the user, query against, and update.
    The issue is complicated more by recurring events, but I think I have that handled already and can make a recurring event be transparent from the application point of view. I just need to figure out how to represent this.
    This is my current idea, and I don't like it at all:
    A TimeSlot object, holding a beginning date and ending date. A data structure that holds list of TimeSlot objects in order by date. I'd probably also hold an index of some sort that maps some constant span of time to a general area in the data structure where times around there can be found, so I avoid O(n) time searching for a given time to find whether or not it is open.
    I don't like this idea, because it requires me to call getBeginningDate() and getEndDate() for every single time slot I search.
    Anyone have any ideas?

    If I am correct, your requirement is to display a schedule, showing the occupancy of a resource (open/closed/used/free and other kind of information) on a time line.
    I do not say that your design is incorrect. What I state below is strictly my views and should be treated that way.
    I would not go by time-slot, instead, I would go by resource, for instance the gym, the class rooms (identified accordingly), the swimming pool etc. are all resources. Therefore (for the requirements you have specified), I would create a class, lets say "Resource" to represent all the resources. I would recommend two attributes at this stage ("name" & "identifier").
    The primary attribute of interest in this case would be a date (starting at 00:00hrs and ending at 24:00hrs.), a span of 24hrs broken to the smallest unit of a minute (seconds really are not very practical here).
    I would next encapsulate the availability factor, which represents the concept of availability in a class, for instance "AvailabilityStatus". The recommended attributes would be "date" and "status".
    You have mentioned different status, for instance, available, booked, closed, under-maintainance etc. Each of these is a category. Let us say, numbered from 0 to n (where n<128).
    The "date" attribute could be a java.util.Date object, representing a date. The "status", is byte array of 1440 elements (one element for each minute of the day). Each element of the byte array is populated by the number designation of the status (i.e, 0,1,2...n etc.), where the numbers represent the status of the minute.
    The "Resource" class would carry an attribute of "resourceStatus", an ordered vector of "ResourceStatus" objects.
    The object (all the objects) could be populated manually at any time, or the entire process could be automated (that is a separate area).
    The problem of representation is over. You could add any number of resources as well as any number of status categories.
    This is a simple solution, I do not address the issues of querying this information and rendering the actual schedule, which I believe is straight forward enough.
    It is recognized that there are scope for optimizations/design rationalization here, however, this is a simple and effective enough solution.
    regards
    [email protected]

  • Hard Drive is designated as "F" drive and IPod doesn't recognize it

    My hard drive is designated as the "F" drive, and I think the IPod is looking for it as the "C" drive. Can anyone tell me how to fix this?

    hi Johnny!
    hmmmm. if you've got a hard drive with an F letter, we'd first better check up on this issue:
    Strange iPod behavior when Windows confuses iPod with network drive
    keep us posted.
    love, b

  • New Hard Drive still have Question Mark Folder

    So I first got the 'Question Mark Folder' and had to keep running Safe Boot Mode to use computer. Finally got around to replacing the Hard Drive, but this Question Mark Folder still comes up trying to turn the computer on and now trying to setup the new hard drive. Won't let me do anything. I've tried all of the button combos/recovery mode/etc. Tried inserting both a backup disk of Mavericks and Snow Leopard, nothing. Is there any other problems that could cause this? Maybe a dead SATA cable? or something else small hopefully?

    My newest Mac just did the same "folder of death" dance. It's too late for you now, but you might consider a passport backup drive.You can get 2&3 T-bytes now fairly reasonably priced. A given with computers is they will crash, just a question of how bad and when, so you can be prepared for the next time.

  • Need best Architecture design for the following scenario

    Hi Experts,
    I need best architecture design for the following scenario:
    Sender: Mail
    Receiver: if sender body contain u201DApproveu201D, then call SOAP adapter, If SOAP adapter execute successfully, then  send Mail(SOAP adapter executed successfully) and SMS .  So receiver is SOAP, Mail and SMS.
    My current approach issue:
    Three message mapping:
    Mapping1: mail to SOAP
    Mapping2: mail to Mail
    Mapping3: mail to SMS
    In interface determinant>u201DSelect all three operation mappingu201D> u201Cselect order at runtimeu201D.
    Issue in current approach: For me first SOAP adapter should complete successfully, after that only my Mail and SMS operation mapping should execute:
    But problem is before success of SOAP adapter engine, Mail and SMS mapping completed or integration engine executed.
    Note: There is possible to fail the SOAP request in adapter engine.
    Kindly help me --> u201CAm I going correct way or want to change the architectureu201D?
    Thanks for advance!!
    Regards, Kumar

    What do you mean by successful execution of soap call?  Are you talking about Successful response (happy flow) from the soap call instead of application error ? Then based on the response you want to decide sending mail and sms.  How big call is your soap ?  If your soap interface is very simple I can give the other possible way.
    Sender sends the message, use mapping  to read the content and then do soap call in the mapping itself and after seeing the soap response decide about two receivers (mail and SMS).  If your soap call is very simple one, you can go for it. Otherwise I would not recommend this. The reason is you loose some visibility regards to monitoring during soap call in the mapping.
    Other option is go for CCBPM.  Here you receive the message, use send step to soap interface which is sync step. Then after seeing the response create another block with fork steps each for two senders mail and sms. If response bad then dont proceed or execute the next block. Simply use exeception or control step to jump out from the block,

  • A Leading 3D Architecture Designing Services Provider in India.

    Hi all!!! This is on behalf of Yantram – A Leading 3D Architecture Designing Services Provider in India.
    I am new to this forum and hope to get good support from all the forum members.
    Edited by: user10387861 on Oct 3, 2008 2:26 PM

    This forum is for oracle users to share their knowledge . Not to support or give service . For support hire a DBA or connect to metalink.
    Regards,
    Kumar
    [www.idatamax.com]

  • SOA real-time design question

    Hi All,
    We are currently working with SOA Suite 11.1.1.4. I have a SOA application requirement to receive real-time feed for six data tables from an external third party. The implementation consists of five one-way operations in the WSDL to populate the six database tables.
    I have a design question. The organization plans to use this data across various departments which requires to replicate or supply the data to other internal databases.
    In my understanding there are two options
    1) Within the SOA application fork the data hitting the web-service to different databases.
    My concern with this approach is what if organizations keep coming with such requests and I keep forking and supplying multiple internal databases with the same data. This feed has to be real-time, too much forking with impact the performance and create unwanted dependencies for this critical link for data supply.2) I could tell other internal projects to get the data from the populated main database.
    My concern here is that firstly the data is pushed into this database flat without any constraints and it is difficult to query to get specific data. This design has been purposely put in place to facilitate real-time performance.Also asking every internal projects to get data from main database will affect its performance.
    Please suggest which approach should I take (advantage/disadvantage. Apart from the above two solutions, is there any other recommended solution to mitigate the risks. This link between our organization and external party is somewhat like a lifeline for BAU, so certainly don't want to create more dependencies and overhead.
    Thanks

    I had tried implementing the JMS publisher/subscriber pattern before, unfortunately I experienced performance was not so good compared to the directly writing to the db adapter. I feel the organization SOA infrastructure is not setup correctly to cope with the number of messages coming through from external third party. Our current setup consists of three WebLogic Servers (Admin, SOA, BAM) all running on only 8GB physical RAM on one machine. Is there Oracle guideline for setting up infrastructure for a SOA application receiving roughly 600000 messages a day. I am using SOA 11.1.1.4. JMS publisher/subscriber pattern just does not cope and I see significant performance lag after few hours of running. The JMS server used was WebLogic JMS
    Thanks
    Edited by: user5108636 on Jun 13, 2011 4:19 PM
    Edited by: user5108636 on Jun 13, 2011 7:03 PM

Maybe you are looking for