BPM distroy the SWCV design pattern
Hi XIer,
I am designing our SWCV as following:
We need to integration one SAP R3 and 3 legacy systems using XI.
So we created one SWCV for creating Data type, interface type and interface message for SAP,another 3 SWCV for 3 legacy systems for interface structure define. The Fourth SWCV is used for containing mapping objects, like message mapping and message interface.
This is a good design as far as I know, but it comes problem when we want to use BPM,in BPM we need to define Container variable, but when we want to create an abstract interface as Container, it just allowed abstract interfaces under the specific SWCV which contains this BPM, so I am just confusing BPM will touch R3 and another legacy system, so looks like our design pattern can be used in such secnario.
Could you give me any idea about how to design SWCV if you want to use BPM? thank you very much
Zhang,
it should not be a problem with SWCV you can use any SWCV in BPM when using the container variable use correspoding SWCV where the coinater variable or abstract interface is desinged SWCV.
Regards
Sreeram.G.Reddy
Similar Messages
-
What is the best design pattern for this problem?
No code to go with the question. I am trying to settle on the best design pattern for the problem before I code. I want to use an Object Oriented approach.
I have included a basic UML diagram of what I was thinking so far.
Stated simply, I have three devices; Module, Wired Modem, and Wireless Modem.
In the Device Under Test parent class, I have put the attributes that are variable from device to device, but common to all of them.
In the child classes, I have put the attributes that are not variable to each copy of that device. The attributes are common across device types. I was planning to use controls in the class definition that have the data set to a default value, since it doesn't change for each serial number of that device. For example, a Module will always have a Device Type ID of 1. These values are used to query the database.
An example query would be [DHR].[GetDeviceActiveVersions] '39288', 1, '4/26/2012 12:18:52 PM'
The '1' is the device type ID, the 39288 is the serial number, and the return would be "A000" or "S002", for example.
So, I would be pulling the Serial Number and Device Type ID from the Device Under Test parent and child, and passing them to the Database using a SQL string stored in the control of the Active Versions child class of Database.
The overall idea is that the same data is used to send multiple queries to the database and receiving back various data that I then evaluate for pass of fail, and for date order.
What I can't settle on is the approach. Should it be a Strategy pattern, A Chain of Command pattern, a Decorator pattern or something else.
Ideas?elrathia wrote:
Hi Ben,
I haven't much idea of how override works and when you would use it and why. I'm the newest of the new here.
Good. At least you will not be smaking with a OPPer dOOPer hammer if I make some gramatical mistake.
You may want to look at this thread in the BreakPoint where i trie to help Cory get a handle on Dynamic Dispatching with an example of two classes that inherit from a common parent and invoke Over-ride VIs to do the same thing but with wildly varying results.
The example uses a Class of "Numeric" and a sibling class "Text" and the both implement an Add method.
It is dirt simple and Cory did a decent job of explaining it.
It just be the motivation you are looking for.
have fun!
Ben
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction -
What is the best design pattern for top-down ws development..?
Hi,
What is the best design pattern for top-down development+ wsdl2service....?elrathia wrote:
Hi Ben,
I haven't much idea of how override works and when you would use it and why. I'm the newest of the new here.
Good. At least you will not be smaking with a OPPer dOOPer hammer if I make some gramatical mistake.
You may want to look at this thread in the BreakPoint where i trie to help Cory get a handle on Dynamic Dispatching with an example of two classes that inherit from a common parent and invoke Over-ride VIs to do the same thing but with wildly varying results.
The example uses a Class of "Numeric" and a sibling class "Text" and the both implement an Add method.
It is dirt simple and Cory did a decent job of explaining it.
It just be the motivation you are looking for.
have fun!
Ben
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction -
What is the best design pattern for multiple instrument​s?
I have several PXI cards (DMM, O-scope, etc) that I want to create a master panel that can control all of the instruments individually, though not necessarily all at the same time (turn "instruments" on and off at will while the master vi continues to run). Is there one design pattern (master/slave, producer/consumer, etc.) that works better than another for this type of master panel? Are there other alternatives for this type of problem (VI Server, etc)?
I was hoping that I could save a bunch of time if I could start on the right path right off the bat!
Thanks,
-Warrenelrathia wrote:
Hi Ben,
I haven't much idea of how override works and when you would use it and why. I'm the newest of the new here.
Good. At least you will not be smaking with a OPPer dOOPer hammer if I make some gramatical mistake.
You may want to look at this thread in the BreakPoint where i trie to help Cory get a handle on Dynamic Dispatching with an example of two classes that inherit from a common parent and invoke Over-ride VIs to do the same thing but with wildly varying results.
The example uses a Class of "Numeric" and a sibling class "Text" and the both implement an Add method.
It is dirt simple and Cory did a decent job of explaining it.
It just be the motivation you are looking for.
have fun!
Ben
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction -
The search for a perfect design pattern
The search for a perfect design pattern
I am searching tip to upgrade a labview program used. I am looking for the best approach to make
my program more robust and scalable.Software and hardware.
Today the system consists of :
GPS, weather station, ultrasound wind sensor, echosounder and a webcamera, all connected to a computer.
The computer OS is XP pro with Labview version 2009 installed. Except for the webcamera all peripherals have serial communication interface.
The webcamera interface is ethernet.
Device Data type Interval Interface
GPS NMEA string 1 second Serial rs232
Ultrasound wind sensor NMEA string 1 second Serial rs232
Weather, temp,humid NMEA string 35 seconds Serial rs232
Echosounder NMEA string 500ms-5 seconds Serial rs232
(depending of depth)
Webcamera Jpg Snapshot on demand Ethernet
The tasks to be solved
All the data have to be stored.
All the data have to be displayed in real time.
Weather history data must be buffered to be plotted in a graph (pop-up windows).
Absolute wind speed and direction have to be calculated.
Option to send navigation data attached to email at desired time intervals.
Image snapshot at desired time intervals.
The data wich streams into the serial ports are not synchronized and vary in intervals . Would it be a good idea to put all the serial peripherals into a serial device server. Is it possible to let the server place a event in my software, to trigger reading of the data, from the the server. Or how could that be done in other ways?
The perfect design pattern
In version one of the software I use 4 parallel loops to read data at the serial ports, inside these loops the data was separated and outputted to a datasocket server. I used datasocked read in other loops to present and store data. But it did not look good, and yes it was a mess, a really rat nest. I am looking for a better design pattern.
Could some kind of producer/ consumer pattern be the way to go?
Comments and tips are wanted.
TIKNice Project! Congratulations ;-)
I am not an expert for large applications. But your project looks nice and manageable. Here my straightforward ideas:
I would build a GUI, with menu bar, pop-up graph display thing.
THen low level tasks with each one handling a RS232 device and feeding queues or fireing notifications.
Maybe handle the snapshots in an event structure on the GUI blockdiagramm.
When GUI and producer tasks are running, close the gap with a middle layer which captures the data and actualizes GUI by reference. For instance the graph-thing-dialogue triggers a "flush queue" and displays the last 200 entries of the array of data.
I often run into issues when having defined too many userevent structures. I guess i am too stupid for that. Thats why i rather use queues (when i dont want to loose data) or notifiers (data is up-to-date). Nevertheless I like a "stop-all-tasks" user event...traditionally.
My team is actually developing a large application. We are using LabVIEW classes and objects.
So have fun!
Yours
RZM -
What is command design pattern? what is the problem that it solves?
Hi i have been reading few articles on command design pattern but was unable to understand what it is and what problem does it solve. As far as my understanding goes if there is a pre specified method in an object that could execute and perform the necessary activities then it is called as command design pattern. Why is it named as command design pattern, it is because in a shell we use commands to retrieve output. For example when we type "dir" in dos command prompt it returns the list of files. so here we have to remember a preexisting exe file named "dir" which does something when used. So here like we call it command because when "dir" is passed to the computers it returns something that is expected. may be the computer obeys the command issued and return something back. So like wise if there is a method that is defined as as the command, for example in struts framework the action class must have a method "execute()" which is called by the framework to execute the necessary action mapped to it. So if there is a predefined method like "execute" in struts then the object is said to be followed command design pattern. So what actually does it solve?
What ever i have written is my understanding from the articles i have read about the design pattern. So kindly correct me if i am wrong. Help me understanding what actual problem does this pattern solves. Thanking you in advance.This is really off-topic for these forums. You might do better on StackOverflow.com. I'll just say that although the first Design Patterns book came as a revelation to me, it was more for (a) the nomenclature (decorator, factory, facade, etc) which is still with us and (b) about five of the original patterns, which told me things I didn't already know. I've never used any of the others, including Command, and the whole design patterns thing quickly degenerated into farce with what seemed like a sustained attempt to reduce the whole of computer science to design patterns, which really isn't the point. As an example, there is one in another book called Type Object, which is nothing but 3rd normal form, which can be defined roughly in a couple of sentences. This pattern went on for dozens of pages with a very artificial example. I wrote to the mailing list about it: 'Type Object considered hilarious'. I got a rude reply from the original author, which I guess I expected, but also an incredible response from the list owner, saying I should recast my objections in the form of a design pattern. That lost it for me. True story. Moral: don't take this religion, or any IT religion, too seriously. They come around every 18 months or so with the regularity of the next bit of Moore's Law. I've seen dozens of them come and go since 1971, all with something to say, all 90% nonsense.
See here for a longer version of this incident. -
Design Patterns, The Decorator
When trying to implement the classic decorator design patterns your decorator executable might look like this:<br><br>
<pre>
METHOD validate.
DATA: Validator TYPE REF TO validation_manager.
CREATE OBJECT:
Validator TYPE validation_manager.
,Validator TYPE validate_format EXPORTING x_validator = Validator
,Validator TYPE validate_values EXPORTING x_validator = Validator
,Validator TYPE validate_relation_input EXPORTING x_validator = Validator
,Validator TYPE validate_relation_database EXPORTING x_validator = Validator.
me->lst_result = validator->validate( me->lst_data ).
WRITE: / 'Processing Validate Activity'.
ENDMETHOD. "validate</pre><br><br>
The validate method ends up in endless resurcion in the memory. The reason is that I'm using the same variable as the resulting instanse and as parameter. It seems like the constructor treats both the result and the parameter as the same field/instanse regardless import parameter such as VALUE/REFERENCE. If I change the method to use an extra field in the method validate like:
<br><br><pre>
METHOD validate.
DATA:
validator TYPE REF TO validation_manager
,recursive TYPE REF TO validation_manager.
CREATE OBJECT validator TYPE validation_manager.
recursive ?= validator.
CREATE OBJECT validator TYPE validate_format
EXPORTING x_validator = recursive.
recursive ?= validator.
CREATE OBJECT validator TYPE validate_values
EXPORTING x_validator = recursive.
recursive ?= validator.
CREATE OBJECT validator TYPE validate_relation_input
EXPORTING x_validator = recursive.
recursive ?= validator.
CREATE OBJECT validator TYPE validate_relation_database
EXPORTING x_validator = recursive .
recursive ?= validator.
me->lst_result = validator->validate( me->lst_data ).
WRITE: / 'Processing Validate Activity'.
ENDMETHOD. "validate</pre><br><br>
Now the decorator engine works, but why does the first implementation not work when the same one executes fine in php, c++, delphi, java and other languages.<br><br>
If you do not know what I'm trying to discuss, look up "Design Patterns - Simply", and jump to the chapter about the decorator design pattern. I'm trying to use this design pattern for a validation manager within my Business Process Engine, which needs to be able to configure what types of validation needed for on specific process (BPMN).<br><br>Hi Matt, Thanks for the formatting..:) I will post the complete program as it's only a prototype program. Trying to get the format under control.
</body>
Report ZDP_DECORATOR_XMP01
REPORT zdp_decorator_xmp01.
parameters: bestimpl TYPE boolean_01 default 0.
TYPES:
BEGIN OF processdata
,name TYPE char30
,street TYPE char30
,zip TYPE char5
,city TYPE char30
,email TYPE char50
,phone TYPE char20
,END OF processdata
,BEGIN OF result
,msgid TYPE msgid
,msgtyp TYPE msgty
,msgno TYPE msgno
,status TYPE char1
,END OF result.
CONSTANTS:
true TYPE boolean_01 VALUE 1
,false TYPE boolean_01 VALUE 0.
CLASS validationmanager DEFINITION
CLASS validation_manager DEFINITION.
PUBLIC SECTION.
METHODS:
validate
IMPORTING
x_data TYPE processdata
RETURNING
value(y_result) TYPE result.
ENDCLASS.
CLASS validationmanager IMPLEMENTATION
CLASS validation_manager IMPLEMENTATION.
METHOD validate.
WRITE: / 'Common validation'.
ENDMETHOD. "validate
ENDCLASS.
CLASS Validate_Decorator DEFINITION
CLASS validate_decorator DEFINITION INHERITING FROM validation_manager ABSTRACT .
PUBLIC SECTION.
DATA: validator TYPE REF TO validation_manager.
ENDCLASS.
CLASS validate_format DEFINITION
CLASS validate_format DEFINITION INHERITING FROM validate_decorator.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING value(x_validator) TYPE REF TO validation_manager
,validate REDEFINITION.
ENDCLASS.
CLASS validate_format IMPLEMENTATION
CLASS validate_format IMPLEMENTATION.
METHOD constructor.
CALL METHOD super->constructor( ).
me->validator = x_validator.
ENDMETHOD. "constructor
METHOD validate.
y_result = validator->validate( x_data ).
IF y_result-status IS INITIAL.
WRITE: / 'Now doing the format checks'.
ENDIF.
ENDMETHOD. "validate
ENDCLASS.
CLASS validate_values DEFINITION
CLASS validate_values DEFINITION INHERITING FROM validate_decorator.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING value(x_validator) TYPE REF TO validation_manager
,validate REDEFINITION.
ENDCLASS.
CLASS validate_values IMPLEMENTATION
CLASS validate_values IMPLEMENTATION.
METHOD constructor.
CALL METHOD super->constructor( ).
me->validator = x_validator.
ENDMETHOD. "constructor
METHOD validate.
y_result = validator->validate( x_data ).
IF y_result-status IS INITIAL.
WRITE: / 'Now doing the values checks'.
ENDIF.
ENDMETHOD. "validate
ENDCLASS.
CLASS validate_relation_input DEFINITION
CLASS validate_relation_input DEFINITION INHERITING FROM validate_decorator.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING value(x_validator) TYPE REF TO validation_manager
,validate REDEFINITION.
ENDCLASS.
CLASS validate_relation_input IMPLEMENTATION
CLASS validate_relation_input IMPLEMENTATION.
METHOD constructor.
CALL METHOD super->constructor( ).
me->validator = x_validator.
ENDMETHOD. "constructor
METHOD validate.
y_result = validator->validate( x_data ).
IF y_result-status IS INITIAL.
WRITE: / 'Now doing the relation input checks'.
ENDIF.
ENDMETHOD. "validate
ENDCLASS.
CLASS validate_relation_database DEFINITION
CLASS validate_relation_database DEFINITION INHERITING FROM validate_decorator.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING value(x_validator) TYPE REF TO validation_manager
,validate REDEFINITION.
ENDCLASS.
CLASS validate_relation_database IMPLEMENTATION
CLASS validate_relation_database IMPLEMENTATION.
METHOD constructor.
CALL METHOD super->constructor( ).
me->validator = x_validator.
ENDMETHOD. "constructor
METHOD validate.
y_result = validator->validate( x_data ).
IF y_result-status IS INITIAL.
WRITE: / 'Now doing the relation database checks'.
ENDIF.
ENDMETHOD. "validate
ENDCLASS.
CLASS process_execution DEFINITION
CLASS process_execution DEFINITION.
PUBLIC SECTION.
METHODS:
startevent
,getdata
,validate
,process
,endevent.
PRIVATE SECTION.
DATA:
lst_data TYPE processdata
,lst_result TYPE result.
ENDCLASS. "process_execution DEFINITION
CLASS process_execution IMPLEMENTATION
CLASS process_execution IMPLEMENTATION.
METHOD startevent.
WRITE: / 'Processing startevent'.
ENDMETHOD. "startevent
METHOD getdata.
me->lst_data-name = 'Hans Andersen'.
me->lst_data-street = 'H.C Andersens Boulevard 112'.
me->lst_data-zip = '1557'.
me->lst_data-city = 'København'.
me->lst_data-email = 'hcATandersen.dk'.
me->lst_data-phone = '0045-31162211'.
WRITE: / 'Processing Get_Data Activity'.
ENDMETHOD. "getdata
METHOD validate.
DATA:
validator TYPE REF TO validation_manager
,recursive TYPE REF TO validation_manager
IF bestimpl = true.
CREATE OBJECT:
validator TYPE validation_manager
,validator TYPE validate_format EXPORTING x_validator = recursive
,validator TYPE validate_values EXPORTING x_validator = recursive
,validator TYPE validate_relation_input EXPORTING x_validator = recursive
,validator TYPE validate_relation_database EXPORTING x_validator = recursive.
ELSE.
CREATE OBJECT validator TYPE validation_manager.
recursive ?= validator.
CREATE OBJECT validator TYPE validate_format
EXPORTING x_validator = recursive.
recursive ?= validator.
CREATE OBJECT validator TYPE validate_values
EXPORTING x_validator = recursive.
recursive ?= validator.
CREATE OBJECT validator TYPE validate_relation_input
EXPORTING x_validator = recursive.
recursive ?= validator.
CREATE OBJECT validator TYPE validate_relation_database
EXPORTING x_validator = recursive .
recursive ?= validator.
ENDIF.
Recursive call of the validate and it's successors
me->lst_result = validator->validate( me->lst_data ).
WRITE: / 'Processing Validate Activity'.
ENDMETHOD. "validate
METHOD process.
WRITE: / 'Processing Process Activity'.
ENDMETHOD. "process
METHOD endevent.
WRITE: / 'Processing endevent'.
ENDMETHOD. "endevent
ENDCLASS.
CLASS mainapp DEFINITION *
CLASS mainapp DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
main.
ENDCLASS.
CLASS mainapp IMPLEMENTATION *
CLASS mainapp IMPLEMENTATION.
METHOD main.
DATA:
p89 TYPE REF TO process_execution.
CREATE OBJECT p89.
p89->startevent( ).
p89->getdata( ).
p89->validate( ).
p89->process( ).
p89->endevent( ).
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
mainapp=>main( ).
Edited by: Matt on Dec 22, 2009 2:03 PM Fixed formatting -
How can I develop a web application using EJB design pattern?
I have searched over the web and found quite a lot of tutorials on how to use the EJB design pattern.
I know that there will be a home interface, EJB object interface and a SessionBean.
But the tutorials often only cover a single class, this made me unable to get a complete picture of how EJB design pattern can be implemented into a whole system.
I am now required to devleop an online shopping web application using EJB and JSP page.
I think I will need to create a lot of classes: Member, ShoppingCart, Product...etc.
What I want to ask is that, do I need to create a home interface, EJB object interface and a SessionBean for each of these classes?
I really need some ideas on how to develop this system using EJB + JSP pages.
Many thanks to you all.For every EJB that you want to create, you will need to code a home and remote interface and a bean class.
You could start getting your ideas here
http://www.theserverside.com/books/wiley/masteringEJB/
http://www.coreservlets.com -
SERVICE LOCATOR ?? Is it really an interesting Design pattern??
Hi everybody,
i've a problem with the J2EE Design Pattern "Services locator" (it's a singleton).
It is said that by making use of a Service Locator we can :
- hide to the client the complexities of initial context creation, EJB home object lookup,and EJB objectre-creation.
- multiple clients can reuse the Service Locator object to reduce code complexity, provide a single point of control, and improve performance by providing a caching facility.
But i would like to understand at which side should that service locator object reside??!!??
If it is at server side then the clients need well an initial context in order to make a lookup on that object.
Conclusion :
the service locator doesn't hide the complexities of initial context!!
Furthermore the client has to perform a look-up on that service locator object!! The only advantage left is caching facility.
If it is at client side, each client needs his own services locator object
Conclusion :
multiple client don't reuse the same service locator. What's the advantage to be a singleton ???
There is certainly something that i don't understand so help me please!! Thanks.Hi Yves,
But i would like to understand at which side should
that service locator object reside??!!??
If it is at client side, each client needs his own
services locator object
Conclusion :
multiple client don't reuse the same service locator.
What's the advantage to be a singleton ???The service locator resides on the client side and is implemented as
a singleton. Since it is possible that there could be multiple
class loaders/JVMs on the client side, and therefore, multiple
instances of the "singleton" service locator. This is typical
in a distributed environment (e.g. servlets/JSPs in a web-tier
cluster using service locator). Thus service locator is not
a truly "distributed singleton" object. But, the empahsis
is to design the service locator such that it does not hold
any state that needs to be replicated across multiple
instances across different JVMs as mentioned. Thus, there
is no need for multiple clients to use the "same" service locator,
but still the benefits of implementing this pattern is realized.
By making it a singleton, and keeping it from holding state
that needs to be replicated, we realize the benefits of this pattern.
You may also want to visit the J2EE Pattern interest list
and see these relevant discussions :
Topic: Service Locator and passivation
http://archives.java.sun.com/cgi-bin/wa?A2=ind0106&L=j2eepatterns-interest&F=&S=&P=1026
Topic: Caching EJBHome interfaces
http://archives.java.sun.com/cgi-bin/wa?A2=ind0106&L=j2eepatterns-interest&F=&S=&P=9226
Topic: Using Service Locator for Data Source caching
http://archives.java.sun.com/cgi-bin/wa?A1=ind0106&L=j2eepatterns-interest#31
hope this helps,
thanks,
-deepak -
Use of synchronisation with the SUN DAO Pattern
With reference to the design pattern Core J2EE Patterns Data Access Object: http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
I am writing a DAO package to handle access to multiple datasources at a record level (e.g. user records may be located at datasource A, but customer records at datasource B). The role of the package is to provide DAO objects to clients (e.g. business objects in an application package to come later). Nothing too unusual. I have digested the SUN design pattern for DAO.
As I understand it, it can be summarised as: client code calls on an abstract DAOFactory to provide the appropriate concrete DAOFactory . The concrete factory can then supply the correct DAO object. The concrete DAOFactory is also responsible for providing the connection services (such as pooling). So far so good. I have pasted the concrete DAOFactory code form the design pattern page:
// Cloudscape concrete DAO Factory implementation
import java.sql.*;
public class CloudscapeDAOFactory extends DAOFactory {
public static final String DRIVER=
"COM.cloudscape.core.RmiJdbcDriver";
public static final String DBURL=
"jdbc:cloudscape:rmi://localhost:1099/CoreJ2EEDB";
// method to create Cloudscape connections
public static Connection createConnection() {
// Use DRIVER and DBURL to create a connection
// Recommend connection pool implementation/usage
*** can a connection pool be implemented in a static method? ***
public CustomerDAO getCustomerDAO() {
// CloudscapeCustomerDAO implements CustomerDAO
return new CloudscapeCustomerDAO();
public AccountDAO getAccountDAO() {
// CloudscapeAccountDAO implements AccountDAO
return new CloudscapeAccountDAO();
public OrderDAO getOrderDAO() {
// CloudscapeOrderDAO implements OrderDAO
return new CloudscapeOrderDAO();
I have some questions on this overall design.
1) The design for the factories as given looks inelegant and requires upgrading each time a new DAO is added ? much better surely to dynamically generate the DAOs using reflection. If I implement a mapping of data type to data source using a properties file (typical entry, Key = Role, Value = Oracle), the use of abstract and concrete factories can be reduced to a single factory. The single factory reads in the mapping on initialisation and provides a method getDAO to client code. The method takes the data type, looks up the data source and returns the correct DAO class using reflection (e.g. the client passes ?Role? to getDAO and the factory returns Oracle + DAO + Role = OracleDAORole.class). This also has the advantage that the client code does not need to specify the data source to use. I have read some forums and note that performance is an issue with reflection; however I have not seen any significant difference in performance between using reflection to generate a class name and using a factory pattern (e.g. testing just the code paths, for 10 million operations, both reflection and factory took 2.5 seconds each). Does anyone have any opinions on the pros and cons of this approach?
2) If we go with the original DAO design (ignoring 1 above) I have marked the part of the concrete factory code that I have a problem with: using a connection pool in the concrete factory. As the factory?s createConnection method is static, you cannot use NotifyAll or Wait methods here, and therefore you cannot synchronise access to the pool (correct?). I have therefore created a separate connection pool class (which uses the singleton pattern and uses synchronised methods to manage the pool). Is this a sensible way to approach this or is there a clever way to synchronise access to static methods?
Thanks in advance - AlanThese resources may be helpful:
http://daoexamples.sourceforge.net/related.html
http://daoexamples.sourceforge.net/index.html -
How to create plug and play design pattern on a environment
Hi All,
Help me to get a best design for my problem statement.
Problem Statement: I have to create a platform where I should be able to plug and play different components. explaining better with example
Example:
1. I have to create a platform for school
2. In this school platform we have to plug in multiple components like "Student", "Teacher", "Subjects", "ClassPeriods" etc.,
3. These components should be easily plug/unplug and play
4. Like, the component "ClassPeriods" want to purchase from Vendor 1 and plug it to "School" platform it should work.
5. Incase if we want to unplug the "ClassPeriod" component provided bfy Vendor 1 from "School" platform and want to plug the "ClassPeriod" from Vendor 2. then the Design should support without any extra effort.
Suggest me the best design pattern for the problem
This design pattern is for ASP.Net
Thanks,
S.KannanSounds like you're looking at 'Composition'. As a background, and possible solution, take a look at MEF;
http://mef.codeplex.com/
http://pauliom.wordpress.com -
Choice of design pattern for data acquisition system
Hello all
I have a trouble about selecting the suitable design pattern / architecture for a data acquisition system.
Here is the details of the desired system:
There is data acquisition hardware and I need to use it by observing parameters on User interface.
the data acquisiton period, channel list to scan should be chosen on User interface. Besides, there are many user interface interactions. e.g. if user selects a channel to add scanlist, then I need to enable and make visible some other parts on user interface.
When user completes the channel selection, then he will press the button to start data acquisition. Then I also need to show the scanned values on a graph in real time and log them in txt file.
I know that I cannot use producer consumer pattern here. because the data acquisition loop should wait for parameters to scan channels. and it works in a given period by user. so the user interface loop performs higher rate then consumer loop (data acquisition loop). it means queue will be bigger bigger. if I use notifier it will loss some data come from user interface.
is there any idea about that ? is there any suitable design pattern for this case ?
Thanks in advance
best regards
Veli BAYAR
Embedded Systems Software and Hardware Engineer
"You live in a graphical world. Why not program in one?"
Solved!
Go to Solution.johnsold wrote:
Veli,
I recommend the Producer/Consumer model with some modifications.
You might need three loops. I cannot tell for sure from your brief description.
The User Interface loop responds to the user inputs for configuration and start/stop of acquisition. The parameters and commands are passed to the Data Acquisition loop via a queue. In this loop is a state machine which has Idle, Configuration, Acquisition, and Shutdown states (and perhaps others). The data is sent to the Processing loop via a different queue. The Processing loop performs any data processing, displays the data to the user, and saves it to file. A notifier can be used to send the Stop or shutdown command from the User Interface loop to the other loops. If the amount of processing is minimal and the file write times are not too long, the Processing loop functions might be able to occur in the Timeout case of the UI loop Event structure. This simplifies things somewhat but is not as flexible when changes need to be made.
I am not sure that a Design Pattern for this exact setup exists but it is basically a combination of the Producer/Consumer (Events) and Producer/Consumer (Data) Design Patterns.
Lynn
Check out this thread: http://forums.ni.com/t5/LabVIEW/Multiple-poll-case-structures-to-event-help/td-p/2551309
There are discussions there about a 3-loop architecture that may help you.
Jeff
Jeffrey Zola -
Where to put EJB design patterns?
Im considering where to put the EJB design pattern classes and files.
i.e. Facade, Data Access Objects, Transfer Objects, Delegate...
I was thinking since the EJB business logics and implementation should be hidden from the user, then it is more logical to place these classes at the webapp.war inside of the ejb.jar.
What are your thoughts guys?Photoshop patterns and normally stored in sets the set files have an extension of .pat. You may also add individual patterns using menu Edit>Define Pattern. In some Photoshop Pattern dialog you will see a little gear icon to open a Fly-Out menu in that menu there is a entry for Photoshop Preset Manager. The are also other ways to get into the Preset manager. In the preset manager you can manage many types of presets. Using its pull-down menu select patterns. You can Load an save patterns sets. To save a set tou heed to hilifht the paterns yoy want to include in the set. You can also delete and rename patterns.
-
Observer Design Pattern: Looking for redesign ABAP OO code example
Hello folks,
I am looking for an example for ABAP OO code that has been redesigned by applying the Observer Design Pattern. I would be very interested in both the code before as well as the code after the pattern is being applied.
Thanks in advance and kind regards, AlexObserver can be implemented using the EVENTS.
I had recently implemented the observer at one of my client's place. I had screen with so many ALVs. One ALV was kind of editable and other were just showing the information of the current row as well as some total information. So, initially I started with the Main ALV and SUB(1 and 2) for other ALVs. Now, when I need to refresh my ALVs based on the main ALV data, I had to explicitly update the data of the each Sub ALV. The code was kind of static and requirement was not yet fixed.
Later on we need to add one more ALV on the same screen. It was easy to change the existing method where I was doing the explicit refresh of each ALV. But I thought of using the Events.
I created an event REFRESH_DETAILS for main ALV. so, when data gets changed (which I was catching by DATA_CHANGED event of ALV), I raise the event.
RAISE EVENT REFRESH_DETAILS
exporting new_data = it_Data.
In Sub ALVs, I created the event handler method to handle the event REFRESH_DETAILS of the main ALV.
methods: handle_refresh_details
for event REFRESH_DETAILS of ZCL_MAIN_ALV.
I also had to register the Handler.
SET HANDLER me->handle_refresh_details FOR ALL INSTANCES.
I'll soon write a post on my [ABAP Help blog|http://help-abap.zevolving.com/] with all the details.
Regards,
Naimesh Patel -
Greetings, I am attempting to build a JSF application while learning JSR 127 and a few of the J2EE design patterns. The problem that I am having is that I don't plan on using EJB/Spring with my project and many of the tutorials I have been able to find place a focus on the EJB/Spring implementation details which are both overkill for this project. That said, I want to learn the appropriate patterns to build a functional application without catching "pattern fever".
I have a general idea of some of the patterns I need to use to get from the presentation tier to the data tier, such as Business Delegate and Data Transfer Object. However, I'm not sure I understand how to use these in conjunction with the managed beans facility. Do the managed beans contain (as in composition) the Business Delegate objects? Or do I use a DTO to push the data from the managed bean to the Delegate? How much if any logic do I put in the managed beans if I'm using them in this fashion (or are they basically just fields and getter/setters)?
All comments or suggestions are sincerely appreciated,
JonHi,
Have you taken a look at Java BluePrints Solutions Catalog:
https://blueprints.dev.java.net/bpcatalog/
The Solutions Catalog focuses on different topics specifically so that you can pick and choose which articles are most interesting to you.
-Larry
Maybe you are looking for
-
How to release function module...
Hi All, I have created one function module and activated that. How to release that function module? But Release option is in deactive state...how can i release the FM....please let me know the resons for that. thank you.
-
How to retain socket connection for multiple requests in java 1.3
Hi All, My problem is to retain client socket connection without opening and closing socket connection for every request.I want to open the socket connection once and send multiple requests one after the other based upon the response over the same so
-
i spilled coke on my new mac pro retina, i dont know if it can use or not. can i return to get a new one?
-
ABAP for Webdynpro Portal Navigation dosn't work
I have a Problem. I work with ABAP for Webdynpro. I tried Navigation with absolute, relative and object based. With the java test tools in my Portal it works fine, but with Abap Component not. My Portal Version is 6.0.11.0.0 the J2EE Engine 6.40 Patc
-
Is there a demon in my iPod?
About half the time when I navigate to a song, the iPod refuses to play it, and simply reverts back to the home screen, ie. Music, Extras, Settings, etc. After I hit the center button of the click wheel, the song comes up, and the timing bar comes up