J2EE开发框架外文翻译文献
MVC开放源码中英文对照外文翻译文献

中英文对照外文翻译文献(文档含英文原文和中文翻译)原文:Struts——an open-source MVC implementationThis article introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology. Struts can help you control change in your Web project and promote specialization. Even if you never implement a system with Struts, you may get some ideas for your future servlets and JSP page implementation.Model-View-Controller (MVC)JSP tags solved only part of our problem. We still have issues with validation, flow control, and updating the state of the application. This is where MVC comes to the rescue. MVC helps resolve some of the issues with the single module approach by dividing the problem into three categories:∙ModelThe model contains the core of the application'sfunctionality. The model encapsulates the state of theapplication. Sometimes the only functionality it contains is state. It knows nothing about the view or controller.∙ViewThe view provides the presentation of the model. It is the look of the application. The view can access the model getters, but it has no knowledge of the setters. In addition, it knows nothing about the controller. The view should be notified when changes to the model occur.∙ControllerThe controller reacts to the user input. It creates and sets the model.MVC Model 2The Web brought some unique challenges to software developers, most notably the stateless connection between the client and the server. This stateless behavior made it difficult for the model to notify the view of changes. On the Web, the browser has to re-query the server to discover modification to the state of the application. Another noticeable change is that the view uses different technology for implementation than the model or controller. Of course, we could use Java (or PERL, C/C++ or what ever) code to generate HTML. There are several disadvantages to that approach: ∙Java programmers should develop services, not HTML.∙Changes to layout would require changes to code.∙Customers of the service should be able to create pages to meet their specific needs.∙The page designer isn't able to have direct involvement in page development.∙HTML embedded into code is ugly.For the Web, the classical form of MVC needed to change. Figure 4 displays the Web adaptation of MVC, also commonly known as MVC Model 2 or MVC 2.Struts detailsThe ActionServlet classDo you remember the days of function mappings? You would map some input event to a pointer to a function. If you where slick, you would place the configuration information into a file and load the file at run time. Function pointer arrays were the good old days of structured programming in C.Life is better now that we have Java technology, XML, J2EE, and all that. The Struts Controller is a servlet that maps events (an event generally being an HTTP post) to classes. And guess what -- the Controller uses a configuration file so you don_t have to hard-code the values. Life changes, but stays the same. ActionServlet is the Command part of the MVC implementation and is the core of the Framework. ActionServlet (Command) creates and uses Action, an ActionForm, and ActionForward. As mentioned earlier, the struts-config.xml file configures the Command. During the creation of the Web project, Action and ActionForm are extended to solve the specific problem space. The file struts-config.xml instructs ActionServlet on how to use the extended classes. There are several advantages to this approach:The entire logical flow of the application is in a hierarchical text file. This makes it easier to view andunderstand, especially with large applications.∙The page designer does not have to wade through Java code to understand the flow of the application.∙The Java developer does not need to recompile code when making flow changes.Command functionality can be added by extending ActionServlet. The ActionForm classActionForm maintains the session state for the Web application. ActionForm is an abstract class that is sub-classed for each input form model. When I say input form model, I am saying ActionForm represents a general concept of data that is set or updated by a HTML form. For instance, you may have a UserActionForm that is set by an HTML Form. The Struts framework will:∙Check to see if a UserActionForm exists; if not, it will create an instance of the class.∙Struts will set the state of the UserActionForm using corresponding fields from the HttpServletRequest. No more dreadful request.getParameter() calls. For instance, theStruts framework will take fname from request stream and call UserActionForm.setFname().∙The Struts framework updates the state of the UserActionForm before passing it to the business wrapper UserAction.∙Before passing it to the Action class, Struts will also conduct form state validation by calling the validation() method on UserActionForm. Note: This is not always wise to do. There might be ways of using UserActionForm in other pages or business objects, where the validation might be different.Validation of the state might be better in the UserAction class.∙The UserActionForm can be maintained at a session level. Notes:∙The struts-config.xml file controls which HTML form request maps to which ActionForm.∙Multiple requests can be mapped UserActionForm.∙UserActionForm can be mapped over multiple pages for things such as wizards.The Action classThe Action class is a wrapper around the business logic. The purpose of Action class is to translate the HttpServletRequest to the business logic. To use Action, subclass and overwrite the process() method.The ActionServlet (Command) passes the parameterized classes to ActionForm using the perform() method. Again, no more dreadfulrequest.getParameter() calls. By the time the event gets here, the input form data (or HTML form data) has already been translated out of the request stream and into an ActionForm class. Note: "Think thin" when extending the Action class. The Action class should control the flow and not the logic of the application. By placing the business logic in a separate package or EJB, we allow flexibility and reuse.Another way of thinking about Action class is as the Adapter design pattern. The purpose of the Action is to "Convert the interface of a class into another interface the clients expect. Adapter lets classes work together that couldn_t otherwise because of incompatibility interface" (from Design Patterns - Elements of Reusable OO Software by Gof). The client in this instance is the ActionServlet that knows nothing about our specific business class interface. Therefore, Struts provides a business interface it does understand, Action. By extending the Action, we make our business interface compatible with Struts business interface. (An interesting observation is that Action is a class and not an interface. Action started as an interface and changed into a class over time. Nothing's perfect.)The Error classesThe UML diagram (Figure 6) also included ActionError andActionErrors. ActionError encapsulates an individual error message. ActionErrors is a container of ActionError classes that the View can access using tags. ActionErrors is Struts way of keeping up with a list of errors.The ActionMapping classAn incoming event is normally in the form of an HTTP request, which the servlet Container turns into an HttpServletRequest. The Controller looks at the incoming event and dispatches the request to an Action class. The struts-config.xml determines what Action class the Controller calls. The struts-config.xml configuration information is translated into a set of ActionMapping, which are put into container of ActionMappings. (If you have not noticed it, classes that end with s are containers)The ActionMapping contains the knowledge of how a specific event maps to specific Actions. The ActionServlet (Command) passes the ActionMapping to the Action class via the perform() method. This allows Action to access the information to control flow. ActionMappingsActionMappings is a collection of ActionMapping objects.译文:Struts——MVC 的一种开放源码实现本文介绍 Struts,它是使用 servlet 和 JavaServer Pages 技术的一种 Model-View-Controller 实现。
计算机系 Java EE 外文翻译 外文文献 英文文献

外文科技资料翻译英文原文The Java EE Platform is the leading enterprise web server. The Adobe Flash Platform is the leader in the rich Internet application space. Using both, developers can deliver compelling, data-centric applications that leverage the benefits of an enterprise back-end solution and a great user experience.In this article, you learn about the architecture of applications built using Flex and Java including:(1)An overview of the client/server architecture.(2)The different ways the client and server can communicate.(3)An introduction to Flash Remoting and why and how you use it.(4)How to integrate a Flex application with your security framework.(5)An overview of how to build Flex applications using events, states,MXML components, and modules.(6)An introduction to developing a Flex application with real-time serverdata push.(7)How to boost productivity developing data-intensive applicationsusing the Data Management service in LiveCycle Data Services.(8)An overview of model driven development using Flash Builder andLiveCycle Data Services to generate client and server-side code.(9)How to deploy a Flex application on a portal server.(10)Be sure to also watch the video Introduction to Flex 4 and Javaintegration.(11)To learn more about the technologies used to build these applications,read The technologies for building Flex and Java applications article.Client/server architectureFlex and Java applications use a multi-tier architecture where the presentation tier is the Flex application, the business or application tier is the Java EE server and code, and the data tier is the database. You can write the back-end code just as you normally would for a Java application, modeling your objects, defining your database, using an object-relational framework such as Hibernate or EJB 3, and writing the business logic to query and manipulate these objects. The business tier must be exposed for access via HTTP from the Flex application and will be used to move the data between the presentation and data tiers.Typical HTML applications consist of multiple pages and as a user navigates between them, the application data must be passed along so the application itself (the collection of pages and functionality it consists of) can maintain state. In contrast, Flex applications, by nature, are stateful. A Flex application is embedded in a single HTML page that the user does not leave and is rendered by Flash Player. The Flex application can dynamically change views and send and retrieve data asynchronously to the server in the background, updating but never leaving the single application interface (see Figure 1) (similar to the functionality provided by the XMLHttpRequest API with JavaScript.)Figure 1. The client/server architecture.Client/server communicationFlex applications can communicate with back-end servers using either direct socket connections or more commonly, through HTTP. The Flex framework has three remote procedure call APIs that communicate with a server over HTTP: HTTPService, WebService, and RemoteObject. All three wrap Flash Player'sHTTP connectivity, which in turn, uses the browser's HTTP library. Flex applications cannot connect directly to a remote database.You use HTTPService to make HTTP requests to JSP or XML files, to RESTful web services, or to other server files that return text over HTTP. You specify the endpoint URL, listener functions (the callback functions to be invoked when the HTTPService request returns a successful or unsuccessful response), and a data type for the returned data (what type of data structure it should be translated into once received in the Flex application). You can specify the data to be handled as raw text and assigned to a String variable or converted to XML, E4X, or plain old ActionScript objects. If you get back JSON, you can use the Adobe Flex corelib package of classes to deserialize the JSON objects into ActionScript objects. To make calls to SOAP based web services, you can use the HTTPService API or the more specialized WebService API, which automatically handles the serialization and deserialization of SOAP formatted text to ActionScript data types and vice versa.The third option for making remote procedure calls is to use the RemoteObject API. It makes a Flash Remoting request to a method of a server-side Java class that returns binary Action Message Format over HTTP. When possible, use Flash Remoting whose binary data transfer format enables applications to load data up to 10 times faster than with the more verbose, text-based formats such as XML, JSON, or SOAP (see Figure 2). To see a comparison of AMF to other text-based serialization technologies, see James Ward's Census RIA Benchmark application.Figure 2. Methods for connecting Flex and Java.Flash RemotingFlash Remoting is a combination of client and server-side functionality that together provides a call-and-response model for accessing server-side objects from Flash Platform applications as if they were local objects. It provides transparent data transfer between ActionScript and server-side data types, handling the serialization into Action Message Format (AMF), deserialization, and data marshaling between the client and the server.Flash Remoting uses client-side functionality built in to Flash Player and server-side functionality that is built in to some servers (like ColdFusion and Zend) but must be installed on other servers (as BlazeDS or LiveCycle Data Services on Java EE servers, WebORB or FluorineFX on .NET servers, the Zend framework or amfphp on PHP servers, and more). See the technologies for building Flex and Java applications article for more details about BlazeDS and LiveCycle Data Services.BlazeDS and LiveCycle Data Services use a message-based framework to send data back and forth between the client and server. They provide Remoting, Proxying, and Messaging services, and for LiveCycle, an additional Data Management service. The Flex application sends a request to the server and the request is routed to an endpoint on the server. From the endpoint, the request is passed to the MessageBroker, the BlazeDS and LiveCycle Data Services engine that handles all the requests and routes them through a chain of Java objects to the destination, the Java class with the method to invoke (see Figure 3).Figure 3. Flash Remoting architecture.AMFAMF is a binary format used to serialize ActionScript objects and facilitate data exchange between Flash Platform applications and remote services over the Internet. Adobe publishes this protocol; the latest is AMF 3 Specification for ActionScript 3. You can find tables listing the data type mappings when converting from ActionScript to Java and Java to ActionScript here.For custom or strongly typed objects, public properties (including those defined with get and set methods) are serialized and sent from the Flex application to the server or from the server to the Flex application as properties of a general 0bject. To enable mapping between the corresponding client and server-side objects, you use the same property names in the Java and ActionScript classes and then in the ActionScript class, you use the [RemoteClass] metadata tag to create an ActionScript object that maps directly to the Java object.Here is an example Employee ActionScript class that maps to a server-side Employee Java DTO located in the services package on the server.package valueobjects.Employee{ [Bindable] [RemoteClass(alias="services.Employee")] public class Employee { public var id:int; public var firstName:String; public var lastName:String; (...) } }Installing BlazeDS or LiveCycle Data ServicesTo use Flash Remoting with BlazeDS or LiveCycle Data Services, you need to install and configure the necessary server-side files. For BlazeDS, you can download it as a WAR file which you deploy as a web application or as a turnkey solution. The turnkey download contains a ready-to-use version of Tomcat in which the the BlazeDS WAR file has already been deployed and configured along with a variety of sample applications. Similarly, for LiveCycle Data Services, the installer lets you choose to install LiveCycle with an integrated Tomcat server or as a LiveCycle Data Services web application.In either scenario a web application called blazeds or lcds (usually appended by a version number) is created. You can modify and build out this application with your Java code, or more typically, you can copy the JAR files and configuration files the blazeds or lcds web application contains and add them to an existing Java web application on the server (see Figure 4).Figure 4. The required BlazeDS or LiveCycle Data Services files.Modifying web.xmlIf copying the files to a different web application, you also need to modify the web.xml file to define a session listener for HttpFlexSession and a servlet mapping for MessageBroker, which handles all the requests and passes them off to the correct server-side Java endpoints. You can copy and paste these from the original blazeds or lcds web application web.xml file.<!-- Http Flex Session attribute and binding listener support --> <listener> <listener-class>flex.messaging.HttpFlexSession</listener-class> </listener> <!-- MessageBroker Servlet --> <servlet><servlet-name>MessageBrokerServlet</servlet-name><display-name>MessageBrokerServlet</display-name><servlet-class>flex.messaging.MessageBrokerServlet</servlet-class><init-param> <param-name>services.configuration.file</param-name><param-value>/WEB-INF/flex/services-config.xml</param-value></init-param> <load-on-startup>1</load-on-startup> </servlet><servlet-mapping> <servlet-name>MessageBrokerServlet</servlet-name><url-pattern>/messagebroker/*</url-pattern> </servlet-mapping>Optionally, you may also want to copy and paste (and uncomment) the mapping for RDSDispatchServlet, which is used for RDS (Remote Data Service) access with the data service creation feature in Flash Builder 4 that introspects a server-side service and generates corresponding client-side code. See the model driven development section for more details.<servlet> <servlet-name>RDSDispatchServlet</servlet-name><display-name>RDSDispatchServlet</display-name><servlet-class>flex.rds.server.servlet.FrontEndServlet</servlet-class><init-param> <param-name>useAppserverSecurity</param-name><param-value>false</param-value> </init-param><load-on-startup>10</load-on-startup> </servlet> <servlet-mappingid="RDS_DISPATCH_MAPPING"><servlet-name>RDSDispatchServlet</servlet-name><url-pattern>/CFIDE/main/ide.cfm</url-pattern> </servlet-mapping> Reviewing services-config.xmlFor Flash Remoting, the client sends a request to the server to be processed and the server returns a response to the client containing the results. You configure these requests by modifying the services-config.xml and remoting-config.xml files located in the /WEB-INF/flex/ folder for the web application.The services-config.xml file defines different channels that can be used when making a request. Each channel definition specifies the network protocol and the message format to be used for a request and the endpoint to deliver the messages to on the server. The Java-based endpoints unmarshal the messages in a protocol-specific manner and then pass the messages in Java form to the MessageBroker which sends them to the appropriate service destination (you'll see how to define these next).<channels> <channel-definition id="my-amf"class="mx.messaging.channels.AMFChannel"> <endpointurl="http://{}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/> </channel-definition><channel-definition id="my-secure-amf"class="mx.messaging.channels.SecureAMFChannel"> <endpointurl="https://{}:{server.port}/{context.root}/messagebroker/amfsecu re" class="flex.messaging.endpoints.SecureAMFEndpoint"/></channel-definition> (...) </channels>Defining destinationsIn the remoting-config.xml file, you define the destinations (named mappings to Java classes) to which the MessageBroker passes the messages. You set the source property to the fully qualified class name of a Java POJO with a no argument constructor that is located in a source path, usually achieved by placing it in the web application's /WEBINF/classes/ directory or in a JAR file in the /WEBINF/lib/ directory. You can access EJBs and other objects stored in the Java Naming and Directory Interface (JNDI) by calling methods on a destination that is a service facade class that looks up an object in JNDI and calls its methods.You can access stateless or stateful Java objects by setting the scope property to application, session, or request (the default). The instantiation and management of the server-side objects referenced is handled by BlazeDS or LiveCycle Data Services.<service id="remoting-service"class="flex.messaging.services.RemotingService"> <adapters><adapter-definition id="java-object"class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/> </adapters> <default-channels> <channel ref="my-amf"/> </default-channels> <destination id="employeeService"> <properties><source>services.EmployeeService</source> <scope>application</scope></properties> </destination> </service>You can also specify channels for individual destinations.<destination id="employeeService " channels="my-secure-amf">Lastly, you use these destinations when defining RemoteObject instances in a Flex application.<s:RemoteObject id="employeeSvc" destination="employeeService"/>SecurityIn many applications, access to some or all server-side resources must be restricted to certain users. Many Java EE applications use container managed security in which user authentication (validating a user) and user authorization (determining what the user has access to—which is often role based) are performed against the Realm, an existing store of usernames, passwords, and user roles. The Realm is configured on your Java EE server to be a relational database, an LDAP directory server, an XML document, or to use a specific authentication and authorization framework.To integrate a Flex application with the Java EE security framework so that access to server-side resources is appropriately restricted, you add security information to the BlazeDS or LiveCycle Data Services configuration files (details follow below) and then typically in the Flex application, create a form to obtain login credentials from the user which are passed to the server to be authenticated. The user credentials are then passed to the server automatically with all subsequent requests.Modifying services-config.xmlIn the BlazeDS or LiveCycle Data Services services-config.xml file, you need to specify the "login command" for your application server in the <security> tag. BlazeDS and LiveCycle Data Services supply the following login commands: TomcatLoginCommand (for both Tomcat and JBoss), JRunLoginCommand, WeblogicLoginCommand, WebSphereLoginCommand, OracleLoginCommand. These are all defined in the XML file and you just need to uncomment the appropriate one.You also need to define a security constraint that you specify to use either basic or custom authentication and if desired, one or more roles. To do custom authentication with Tomat or JBoss, you also need to add some extra classes tothe web application for integrating with the security framework used by the Jave EE application server and modify a couple of configuration files. Mode details can be found here.<services-config> <security> <login-commandclass="flex.messaging.security.TomcatLoginCommand" server="Tomcat"><per-client-authentication>false</per-client-authentication></login-command> <security-constraint id="trusted"><auth-method>Custom</auth-method> <roles> <role>employees</role><role>managers</role> </roles> </security-constraint> </security> ...</services-config>Modifying remoting-config.xmlNext, in your destination definition, you need to reference the security constraint:<destination id="employeeService"> <properties><source>services.EmployeeService</source> </properties> <security><security-constraint ref="trusted"/> </security> </destination>You can also define default security constraints for all destinations and/or restrict access to only specific methods that can use different security constraints.The default channel, my-amf, uses HTTP. You can change one or more of the destinations to use the my-secure-amf channel that uses HTTPS:<destination id="employeeService"> <channels> <channelref="my-secure-amf"/> </channels> ... </destination>where my-secure-amf is defined in the services-config.xml file:<!-- Non-polling secure AMF --> <channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel"> <endpointurl="https://{}:{server.port}/{context.root}/messagebroker/amfsecu re" class="flex.messaging.endpoints.SecureAMFEndpoint"/></channel-definition>Adding code to the Flex applicationThat covers the server-side setup. Now, if you are using custom authentication, you need to create a form in the Flex application to retrieve a username and password from the user and then pass these credentials to the server by calling the ChannelSet.login() method and then listening for its result and fault events. A result event indicates that the login (the authentication) occurred successfully, and a fault event indicates the login failed. The credentials are applied to all services connected over the same ChannelSet. For basic authentication, you don’t have to add anything to your Flex application. The browser opens a login dialog box when the application first attempts to connect to a destination.Your application can now make Flash Remoting requests to server destinations just as before, but now the user credentials are automatically sent with every request (for both custom and basic authentication). If the destination or methods of the destination have authorization roles specified which are not met by the logged in user, the call will return a fault event. To remove the credentials and log out the user, you use the ChannelSet.logout() method.中文译文Java EE平台是全球领先的企业Web服务器。
计算机java外文翻译外文文献英文文献

英文原文:Title: Business Applications of Java. Author: Erbschloe, Michael, Business Applications of Java -- Research Starters Business, 2008DataBase: Research Starters - BusinessBusiness Applications of JavaThis article examines the growing use of Java technology in business applications. The history of Java is briefly reviewed along with the impact of open standards on the growth of the World Wide Web. Key components and concepts of the Java programming language are explained including the Java Virtual Machine. Examples of how Java is being used bye-commerce leaders is provided along with an explanation of how Java is used to develop data warehousing, data mining, and industrial automation applications. The concept of metadata modeling and the use of Extendable Markup Language (XML) are also explained.Keywords Application Programming Interfaces (API's); Enterprise JavaBeans (EJB); Extendable Markup Language (XML); HyperText Markup Language (HTML); HyperText Transfer Protocol (HTTP); Java Authentication and Authorization Service (JAAS); Java Cryptography Architecture (JCA); Java Cryptography Extension (JCE); Java Programming Language; Java Virtual Machine (JVM); Java2 Platform, Enterprise Edition (J2EE); Metadata Business Information Systems > Business Applications of JavaOverviewOpen standards have driven the e-business revolution. Networking protocol standards, such as Transmission Control Protocol/Internet Protocol (TCP/IP), HyperText Transfer Protocol (HTTP), and the HyperText Markup Language (HTML) Web standards have enabled universal communication via the Internet and the World Wide Web. As e-business continues to develop, various computing technologies help to drive its evolution.The Java programming language and platform have emerged as major technologies for performing e-business functions. Java programming standards have enabled portability of applications and the reuse of application components across computing platforms. Sun Microsystems' Java Community Process continues to be a strong base for the growth of the Java infrastructure and language standards. This growth of open standards creates new opportunities for designers and developers of applications and services (Smith, 2001).Creation of Java TechnologyJava technology was created as a computer programming tool in a small, secret effort called "the Green Project" at Sun Microsystems in 1991. The Green Team, fully staffed at 13 people and led by James Gosling, locked themselves away in an anonymous office on Sand Hill Road in Menlo Park, cut off from all regular communications with Sun, and worked around the clock for18 months. Their initial conclusion was that at least one significant trend would be the convergence of digitally controlled consumer devices and computers. A device-independent programming language code-named "Oak" was the result.To demonstrate how this new language could power the future of digital devices, the Green Team developed an interactive, handheld home-entertainment device controller targeted at the digital cable television industry. But the idea was too far ahead of its time, and the digital cable television industry wasn't ready for the leap forward that Java technology offered them. As it turns out, the Internet was ready for Java technology, and just in time for its initial public introduction in 1995, the team was able to announce that the Netscape Navigator Internet browser would incorporate Java technology ("Learn about Java," 2007).Applications of JavaJava uses many familiar programming concepts and constructs and allows portability by providing a common interface through an external Java Virtual Machine (JVM). A virtual machine is a self-contained operating environment, created by a software layer that behaves as if it were a separate computer. Benefits of creating virtual machines include better exploitation of powerful computing resources and isolation of applications to prevent cross-corruption and improve security (Matlis, 2006).The JVM allows computing devices with limited processors or memory to handle more advanced applications by calling up software instructions inside the JVM to perform most of the work. This also reduces the size and complexity of Java applications because many of the core functions and processing instructions were built into the JVM. As a result, software developersno longer need to re-create the same application for every operating system. Java also provides security by instructing the application to interact with the virtual machine, which served as a barrier between applications and the core system, effectively protecting systems from malicious code.Among other things, Java is tailor-made for the growing Internet because it makes it easy to develop new, dynamic applications that could make the most of the Internet's power and capabilities. Java is now an open standard, meaning that no single entity controls its development and the tools for writing programs in the language are available to everyone. The power of open standards like Java is the ability to break down barriers and speed up progress.Today, you can find Java technology in networks and devices that range from the Internet and scientific supercomputers to laptops and cell phones, from Wall Street market simulators to home game players and credit cards. There are over 3 million Java developers and now there are several versions of the code. Most large corporations have in-house Java developers. In addition, the majority of key software vendors use Java in their commercial applications (Lazaridis, 2003).ApplicationsJava on the World Wide WebJava has found a place on some of the most popular websites in the world and the uses of Java continues to grow. Java applications not only provide unique user interfaces, they also help to power the backend of websites. Two e-commerce giants that everybody is probably familiar with (eBay and Amazon) have been Java pioneers on the World Wide Web.eBayFounded in 1995, eBay enables e-commerce on a local, national and international basis with an array of Web sites-including the eBay marketplaces, PayPal, Skype, and -that bring together millions of buyers and sellers every day. You can find it on eBay, even if you didn't know it existed. On a typical day, more than 100 million items are listed on eBay in tens of thousands of categories. Recent listings have included a tunnel boring machine from the Chunnel project, a cup of water that once belonged to Elvis, and the Volkswagen that Pope Benedict XVI owned before he moved up to the Popemobile. More than one hundred million items are available at any given time, from the massive to the miniature, the magical to the mundane, on eBay; the world's largest online marketplace.eBay uses Java almost everywhere. To address some security issues, eBay chose Sun Microsystems' Java System Identity Manager as the platform for revamping its identity management system. The task at hand was to provide identity management for more than 12,000 eBay employees and contractors.Now more than a thousand eBay software developers work daily with Java applications. Java's inherent portability allows eBay to move to new hardware to take advantage of new technology, packaging, or pricing, without having to rewrite Java code ("eBay drives explosive growth," 2007).Amazon (a large seller of books, CDs, and other products) has created a Web Service application that enables users to browse their product catalog and place orders. uses a Java application that searches the Amazon catalog for books whose subject matches a user-selected topic. The application displays ten books that match the chosen topic, and shows the author name, book title, list price, Amazon discount price, and the cover icon. The user may optionally view one review per displayed title and make a buying decision (Stearns & Garishakurthi, 2003).Java in Data Warehousing & MiningAlthough many companies currently benefit from data warehousing to support corporate decision making, new business intelligence approaches continue to emerge that can be powered by Java technology. Applications such as data warehousing, data mining, Enterprise Information Portals (EIP's), and Knowledge Management Systems (which can all comprise a businessintelligence application) are able to provide insight into customer retention, purchasing patterns, and even future buying behavior.These applications can not only tell what has happened but why and what may happen given certain business conditions; allowing for "what if" scenarios to be explored. As a result of this information growth, people at all levels inside the enterprise, as well as suppliers, customers, and others in the value chain, are clamoring for subsets of the vast stores of information such as billing, shipping, and inventory information, to help them make business decisions. While collecting and storing vast amounts of data is one thing, utilizing and deploying that data throughout the organization is another.The technical challenges inherent in integrating disparate data formats, platforms, and applications are significant. However, emerging standards such as the Application Programming Interfaces (API's) that comprise the Java platform, as well as Extendable Markup Language (XML) technologies can facilitate the interchange of data and the development of next generation data warehousing and business intelligence applications. While Java technology has been used extensively for client side access and to presentation layer challenges, it is rapidly emerging as a significant tool for developing scaleable server side programs. The Java2 Platform, Enterprise Edition (J2EE) provides the object, transaction, and security support for building such systems.Metadata IssuesOne of the key issues that business intelligence developers must solve is that of incompatible metadata formats. Metadata can be defined as information about data or simply "data about data." In practice, metadata is what most tools, databases, applications, and other information processes use to define, relate, and manipulate data objects within their own environments. It defines the structure and meaning of data objects managed by an application so that the application knows how to process requests or jobs involving those data objects. Developers can use this schema to create views for users. Also, users can browse the schema to better understand the structure and function of the database tables before launching a query.To address the metadata issue, a group of companies (including Unisys, Oracle, IBM, SAS Institute, Hyperion, Inline Software and Sun) have joined to develop the Java Metadata Interface (JMI) API. The JMI API permits the access and manipulation of metadata in Java with standard metadata services. JMI is based on the Meta Object Facility (MOF) specification from the Object Management Group (OMG). The MOF provides a model and a set of interfaces for the creation, storage, access, and interchange of metadata and metamodels (higher-level abstractions of metadata). Metamodel and metadata interchange is done via XML and uses the XML Metadata Interchange (XMI) specification, also from the OMG. JMI leverages Java technology to create an end-to-end data warehousing and business intelligence solutions framework.Enterprise JavaBeansA key tool provided by J2EE is Enterprise JavaBeans (EJB), an architecture for the development of component-based distributed business applications. Applications written using the EJB architecture are scalable, transactional, secure, and multi-user aware. These applications may be written once and then deployed on any server platform that supports J2EE. The EJB architecture makes it easy for developers to write components, since they do not need to understand or deal with complex, system-level details such as thread management, resource pooling, and transaction and security management. This allows for role-based development where component assemblers, platform providers and application assemblers can focus on their area of responsibility further simplifying application development.EJB's in the Travel IndustryA case study from the travel industry helps to illustrate how such applications could function. A travel company amasses a great deal of information about its operations in various applications distributed throughout multiple departments. Flight, hotel, and automobile reservation information is located in a database being accessed by travel agents worldwide. Another application contains information that must be updated with credit and billing historyfrom a financial services company. Data is periodically extracted from the travel reservation system databases to spreadsheets for use in future sales and marketing analysis.Utilizing J2EE, the company could consolidate application development within an EJB container, which can run on a variety of hardware and software platforms allowing existing databases and applications to coexist with newly developed ones. EJBs can be developed to model various data sets important to the travel reservation business including information about customer, hotel, car rental agency, and other attributes.Data Storage & AccessData stored in existing applications can be accessed with specialized connectors. Integration and interoperability of these data sources is further enabled by the metadata repository that contains metamodels of the data contained in the sources, which then can be accessed and interchanged uniformly via the JMI API. These metamodels capture the essential structure and semantics of business components, allowing them to be accessed and queried via the JMI API or to be interchanged via XML. Through all of these processes, the J2EE infrastructure ensures the security and integrity of the data through transaction management and propagation and the underlying security architecture.To consolidate historical information for analysis of sales and marketing trends, a data warehouse is often the best solution. In this example, data can be extracted from the operational systems with a variety of Extract, Transform and Load tools (ETL). The metamodels allow EJBsdesigned for filtering, transformation, and consolidation of data to operate uniformly on datafrom diverse data sources as the bean is able to query the metamodel to identify and extract the pertinent fields. Queries and reports can be run against the data warehouse that contains information from numerous sources in a consistent, enterprise-wide fashion through the use of the JMI API (Mosher & Oh, 2007).Java in Industrial SettingsMany people know Java only as a tool on the World Wide Web that enables sites to perform some of their fancier functions such as interactivity and animation. However, the actual uses for Java are much more widespread. Since Java is an object-oriented language like C++, the time needed for application development is minimal. Java also encourages good software engineering practices with clear separation of interfaces and implementations as well as easy exception handling.In addition, Java's automatic memory management and lack of pointers remove some leading causes of programming errors. Most importantly, application developers do not need to create different versions of the software for different platforms. The advantages available through Java have even found their way into hardware. The emerging new Java devices are streamlined systems that exploit network servers for much of their processing power, storage, content, and administration.Benefits of JavaThe benefits of Java translate across many industries, and some are specific to the control and automation environment. For example, many plant-floor applications use relatively simple equipment; upgrading to PCs would be expensive and undesirable. Java's ability to run on any platform enables the organization to make use of the existing equipment while enhancing the application.IntegrationWith few exceptions, applications running on the factory floor were never intended to exchange information with systems in the executive office, but managers have recently discovered the need for that type of information. Before Java, that often meant bringing together data from systems written on different platforms in different languages at different times. Integration was usually done on a piecemeal basis, resulting in a system that, once it worked, was unique to the two applications it was tying together. Additional integration required developing a brand new system from scratch, raising the cost of integration.Java makes system integration relatively easy. Foxboro Controls Inc., for example, used Java to make its dynamic-performance-monitor software package Internet-ready. This software provides senior executives with strategic information about a plant's operation. The dynamic performance monitor takes data from instruments throughout the plant and performs variousmathematical and statistical calculations on them, resulting in information (usually financial) that a manager can more readily absorb and use.ScalabilityAnother benefit of Java in the industrial environment is its scalability. In a plant, embedded applications such as automated data collection and machine diagnostics provide critical data regarding production-line readiness or operation efficiency. These data form a critical ingredient for applications that examine the health of a production line or run. Users of these devices can take advantage of the benefits of Java without changing or upgrading hardware. For example, operations and maintenance personnel could carry a handheld, wireless, embedded-Java device anywhere in the plant to monitor production status or problems.Even when internal compatibility is not an issue, companies often face difficulties when suppliers with whom they share information have incompatible systems. This becomes more of a problem as supply-chain management takes on a more critical role which requires manufacturers to interact more with offshore suppliers and clients. The greatest efficiency comes when all systems can communicate with each other and share information seamlessly. Since Java is so ubiquitous, it often solves these problems (Paula, 1997).Dynamic Web Page DevelopmentJava has been used by both large and small organizations for a wide variety of applications beyond consumer oriented websites. Sandia, a multiprogram laboratory of the U.S. Department of Energy's National Nuclear Security Administration, has developed a unique Java application. The lab was tasked with developing an enterprise-wide inventory tracking and equipment maintenance system that provides dynamic Web pages. The developers selected Java Studio Enterprise 7 for the project because of its Application Framework technology and Web Graphical User Interface (GUI) components, which allow the system to be indexed by an expandable catalog. The flexibility, scalability, and portability of Java helped to reduce development timeand costs (Garcia, 2004)IssueJava Security for E-Business ApplicationsTo support the expansion of their computing boundaries, businesses have deployed Web application servers (WAS). A WAS differs from a traditional Web server because it provides a more flexible foundation for dynamic transactions and objects, partly through the exploitation of Java technology. Traditional Web servers remain constrained to servicing standard HTTP requests, returning the contents of static HTML pages and images or the output from executed Common Gateway Interface (CGI ) scripts.An administrator can configure a WAS with policies based on security specifications for Java servlets and manage authentication and authorization with Java Authentication andAuthorization Service (JAAS) modules. An authentication and authorization service can bewritten in Java code or interface to an existing authentication or authorization infrastructure. Fora cryptography-based security infrastructure, the security server may exploit the Java Cryptography Architecture (JCA) and Java Cryptography Extension (JCE). To present the user with a usable interaction with the WAS environment, the Web server can readily employ a formof "single sign-on" to avoid redundant authentication requests. A single sign-on preserves user authentication across multiple HTTP requests so that the user is not prompted many times for authentication data (i.e., user ID and password).Based on the security policies, JAAS can be employed to handle the authentication process with the identity of the Java client. After successful authentication, the WAS securitycollaborator consults with the security server. The WAS environment authentication requirements can be fairly complex. In a given deployment environment, all applications or solutions may not originate from the same vendor. In addition, these applications may be running on different operating systems. Although Java is often the language of choice for portability between platforms, it needs to marry its security features with those of the containing environment.Authentication & AuthorizationAuthentication and authorization are key elements in any secure information handling system. Since the inception of Java technology, much of the authentication and authorization issues have been with respect to downloadable code running in Web browsers. In many ways, this had been the correct set of issues to address, since the client's system needs to be protected from mobile code obtained from arbitrary sites on the Internet. As Java technology moved from a client-centric Web technology to a server-side scripting and integration technology, it required additional authentication and authorization technologies.The kind of proof required for authentication may depend on the security requirements of a particular computing resource or specific enterprise security policies. To provide such flexibility, the JAAS authentication framework is based on the concept of configurable authenticators. This architecture allows system administrators to configure, or plug in, the appropriate authenticatorsto meet the security requirements of the deployed application. The JAAS architecture also allows applications to remain independent from underlying authentication mechanisms. So, as new authenticators become available or as current authentication services are updated, system administrators can easily replace authenticators without having to modify or recompile existing applications.At the end of a successful authentication, a request is associated with a user in the WAS user registry. After a successful authentication, the WAS consults security policies to determine if the user has the required permissions to complete the requested action on the servlet. This policy canbe enforced using the WAS configuration (declarative security) or by the servlet itself (programmatic security), or a combination of both.The WAS environment pulls together many different technologies to service the enterprise. Because of the heterogeneous nature of the client and server entities, Java technology is a good choice for both administrators and developers. However, to service the diverse security needs of these entities and their tasks, many Java security technologies must be used, not only at a primary level between client and server entities, but also at a secondary level, from served objects. By using a synergistic mix of the various Java security technologies, administrators and developers can make not only their Web application servers secure, but their WAS environments secure as well (Koved, 2001).ConclusionOpen standards have driven the e-business revolution. As e-business continues to develop, various computing technologies help to drive its evolution. The Java programming language and platform have emerged as major technologies for performing e-business functions. Java programming standards have enabled portability of applications and the reuse of application components. Java uses many familiar concepts and constructs and allows portability by providing a common interface through an external Java Virtual Machine (JVM). Today, you can find Java technology in networks and devices that range from the Internet and scientific supercomputers to laptops and cell phones, from Wall Street market simulators to home game players and credit cards.Java has found a place on some of the most popular websites in the world. Java applications not only provide unique user interfaces, they also help to power the backend of websites. While Java technology has been used extensively for client side access and in the presentation layer, it is also emerging as a significant tool for developing scaleable server side programs.Since Java is an object-oriented language like C++, the time needed for application development is minimal. Java also encourages good software engineering practices with clear separation of interfaces and implementations as well as easy exception handling. Java's automatic memory management and lack of pointers remove some leading causes of programming errors. The advantages available through Java have also found their way into hardware. The emerging new Java devices are streamlined systems that exploit network servers for much of their processing power, storage, content, and administration.中文翻译:标题:Java的商业应用。
j2ee外文翻译文献

j2ee外文翻译Infrastructure for Automatic Dynamic DeploymentOf J2EE Application in Distributed EnvironmentsAnatoly Akkerman, Alexander Totok, and Vijay KaramchetiAbstract: in order to achieve such dynamic adaptation, we need an infrastructure for automating J2EE application deployment in such an environment. This need is quite evident to anyone who has ever tried deploying a J2EE application even on a single application server, which is a task that involves a great deal of configuration of both the system services and application components.Key words: j2ee; component; Distributed; Dynamic Deployment;1 IntroductionIn recent years, we have seen a significant growth in component-based enterprise application development. These applications are typically deployed on company Intranets or on the Internet and are characterized by high transaction volume, large numbers of users and wide area access. Traditionally they are deployed in a central location, using server clustering with load balancing (horizontal partitioning) to sustain user load. However, horizontal partitioning has been shown very efficient only in reducing application-related overheads of user-perceived response times, without having much effect on network-induced latencies. Vertical partitioning (e.g., running web tier and business tier in separate VMs) has been used for fault isolation and load balancing but it is sometimes impractical due to significant run-time overheads (even if one would keep the tiers on a fast local-area network) related to heavy use of remote invocations. Recent work [14] in the context of J2EE component based applications has shown viability of vertical partitioning in wide-area networks without incurring the aforementioned overheads. The key conclusions from that study can be summarized as follows:• Using properly designed applications, vertical distribution across wide-area networks improves user-perceived latencies.• Wide-area vertical layering requires replication of application components and maintaining consistency between replicas.• Additional replicas may be deployed dynamically to handle new requests.• Different replicas may, in fact, be different implementations of the same component based on usage (read-only, read-write).• New request paths may reus e components from previously deployed paths.Applying intelligent monitoring [6] and AI planning [2, 12] techniques in conjunction with the conclusions of that study, we see a potential for dynamic adaptation in industry-standard J2EE component-based applications in wide area networksThrough deployment of additional application components dynamically based on active monitoring. However, in order to achieve such dynamic adaptation, we need an infrastructure for automating J2EE application deployment in such an environment. This need is quite evident to anyone who has ever tried deploying a J2EE application even on a single application server, which is a task that involves a great deal of configuration of both the system services and application components. For example one has to set up JDBC data sources, messaging destinations and other resource adapters before application components can be configured and deployed. In a wide area deployment that spans multiple server nodes, this proves even more complex, since more system services that facilitate inter-node communications need to be configured and started and a variety of configuration data, like IP addresses, port numbers, JNDI names and others have to be consistently maintained in various configuration files on multiple nodes.This distributed deployment infrastructure must be able to:• address inter-component connectivity specification and define its effects on component configuration and deployment,• address application component dependencies on applicati on server services, their configuration and deployment,• provide simple but expressive abstractions to control adaptation through dynamic deployment and undeployment of components,• enable reuse of services and components to maintain efficient use of network nodes’ resources,• provide these facilities without incurring significant additional design effort on behalf of application programmers.In this paper we propose the infrastructure for automatic dynamic deployment of J2EE applications, which addresses all of the aforementioned issues. The infrastructure defines architecture description languages (ADL) for component and link description and assembly. The Component Description Language is used to describe application components and links. It provides clear separation of application components from system components. A flexible type system is used to define compatibility of component ports and links. A declaration and expression language for configurable component properties allows for specification of inter-component dependencies and propagation of properties between components. The Component (Replica) Assembly Language allows for assembly of replicas of previously defined components into application paths byConnecting appropriate ports via link replicas and specifying the mapping of these component replicas onto target application server nodes. The Component Configuration Process evaluates an application path’s correctness, identifies the dependenciesof application components on system components, and configures component replicas for deployment. An attempt is made to match and reuse any previously deployed replicas in the new path based on their configurations. We implement the infrastructure as a part of the JBoss open source Java application server [11] and test it on severalSample J2EE applications –Java Pets tore [23], Rubies [20] and TPC-W-NYU [32]. The infrastructure implementation utilizes the JBoss’s extendable micro-kernel architecture, based on the JMX [27] specification. Componentized architecture of JBoss allows incremental service deployments depending on the needs of deployed applications. We believe that dynamic reconfiguration of application servers through dynamic deployment and undeployment of system services is essential to building a resource-efficient framework for dynamic distributed deployment of J2EE applications. The rest of the paper is organized as follows. Section 2 provides necessary background for understanding the specifics of the J2EE component technology which are relevant to this study. Section 3 gives a general description of the infrastructure architecture, while section 4 goes deeper in describing particularly important and interesting internal mechanisms of the infrastructure. Section 5 describes the implementation of the framework, and related work is discussed in section 6.2 J2EE Background2.1 IntroductionComponent frameworks. A component framework is a middleware system that supports applications consisting of components conforming to certain standards. Application components are “plugged” into the component framework, which establishes their environmental conditions and regulates the interactions between them. This is usually done through containers, component holders, which also provide commonly required support for naming, security, transactions, and persistence. Component frameworks provide an integrated environment for component execution, as a result significantly reduce the effort .it takes to design, implement, deploy, and maintain applications. Current day industry component framework standards are represented by Object Management Group’s CORBA Component Model [18], Sun Microsystems’ Java 2 Platform Enterprise Edition (J2EE) [25] and Microsoft’s .NET [17], with J2EE being currently the most popular and wide ly used component framework in the enterprise arena.J2EE. Java 2 Platform Enterprise Edition (J2EE) [25] is a comprehensive standard for developing multi-tier enterprise Java applications. The J2EE specification among other things defines the following:• Component programming model,• Component contracts with the hosting server,• Services that the platform provides to these components,• Various human roles,• Compatibility test suites and compliance testing procedures.Among the list of services that a compliant application server must provide are messaging, transactions, naming and others that can be used by the application components. Application developed using J2EE adhere to the classical 3-Tier architectures –Presentation Tier, Business Tier, and Enterprise Information System (EIS) Tier (see Fig. 1). J2EE components belonging to each tier are developed adhering to theSpecific J2EE standards.1. Presentation or Web tier.This tier is actually subdivided into client and server sides. The client side hosts a web browser, applets and Java applications that communicate with the server side of presentationtier or the business tier. The server side hosts Java Servlet components [30], Java Server Pages (JSPs) [29] and static web content. These components are responsible for presenting business data to the end users. The data itself is typically acquired from the business tier and sometimes directly from the Enterprise Information System tier. The server side of the presentation tier is typically accessed through HTTP(S) protocol.2. Business or EJB tier.This tier consists of Enterprise Java Beans (EJBs) [24] that model the business logic of the enterprise application. These components provide persistence mechanisms and transactional support. The components in the EJB tier are invoked through remote invocations (RMI), in-JVM invocations or asynchronous message delivery, depending on the type of EJB component. The EJB specification defines several types of components. They differ in invocation style (synchronous vs. asynchronous, local vs. remote) and statefulness: completely stateless (e.g., Message-Driven Bean), stateful non-persistent(e.g., Stateful Session Bean), stateful persistent (e.g., Entity Bean). Synchronously invocable EJB components expose themselves through a special factory proxy object (an EJB Home object, which is specific to a given EJB), which is typically bound in JNDI by the deployer of the EJB. The EJB Home object allows creation or location of an EJBObject, which is a proxy to a particular instance of an EJB 1.3. Enterprise Information System (EIS) or Data tier.This tier refers to the enterprise information systems, like relational databases, ERP systems, messaging systems and the like. Business and presentation tier component communicate with this tier with the help of resource adapters as defined by the Java Connector Architecture [26].The J2EE programming model has been conceived as a distributed programming model where application components would run in J2EE servers and communicate with each other. After the initial introduction and first server implementations, the technology, most notably, the EJB technology has seen some a significant shift away from purely distributed computing model towards local interactions 2. There were very legitimate performance-related reasons behind this shift, however theDistributed features are still available. The J2EE specification has seen several revisions, the latest stable being version 1.3, while version 1.4 is going through last review phases 3. Weshall focus our attention on the former, while actually learning from the latter. Compliant commercial J2EE implementations are widely available from BEA Systems [4], IBM [9], Oracle [21] and other vendors. Several open source implementations, including JBoss [11] and JOnAS [19] claim compatibility as well. ARecent addition to the list is a new Apache project Geronimo [1].2.2 J2EE Component Programming ModelBefore we describe basic J2EE components, let’s first address the issue of defining what a component is a software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties [31].According to this definition the following entities which make up a typical J2EE application would be considered application components (some exceptions given below):• EJBs (session, entity, message-driven),• Web components (servlets, JSPs),• messaging destinations,• D ata sources,EJB and Web components are deployed into their corresponding containers provided by the application server vendor. They have well-defined contracts with their containers that govern lifecycle, threading, persistence and other concerns. Both Web and EJB components use JNDI lookups to locate resources or other EJB components they want to communicate with. The JNDI context in which these lookups are performed is maintained separately for each component by its container. Bindings messaging destinations, such as topics and queues, are resources provided by a messaging service implementation. Data sources are resources provided by the application server for data access by business components into the enterprise information services (data) tier, and most commonly are exemplified by JDBC connection pools managed by the applicationServer. A J2EE programmer explicitly programs only EJBs and Web components. These custom-written components interact with each other and system services both implicitly and explicitly. For example, an EJB developer may choose explicit transaction demarcation (i.e., Bean-Managed Transactions) which means that the developer assumes the burden of writingexplicit programmatic interaction with the platform’s Transaction Manager Service through well-defined interfaces. Alternatively, the developer may choose Container-Managed transaction demarcation, where transactional behavior of a component is defined through its descriptors and handled completely by the EJB container, thus acting as an implicit dependency of the EJB on the underlying Transaction Manager service.2.3 Links Between Components2.3.1 Remote InteractionsJ2EE defines only three basic inter-component connection types that can cross application server boundaries, in all three cases; communication is accomplished through special Java objects.• Remote EJB invocation: synchronous EJB invocations through EJB Home and EJB Object interfaces.• Java Connector outbound connection: synchronous message receipt, synchronous and asynchronous message sending,Database query using Connection Factory and Connection interfaces.• Java Connector inbound connection: asynchronous message delivery into Message-Driven Beans (MDBs) only, utilizing Activation Spec objects. In the first two cases, an application component developer writes the code that performs lookup of these objects in the component’s run-time JNDI context as well as code that issues method invocations or sends and receives messages to and from the remote component. The componen t’s run-time JNDI context is created for each deployment of the component.Bindings in the context are initialized at component deployment time by the deployed (usually by means of component’s deployment descriptors). These bindings are assumed to be static, since the specification does not provide any contract between the container and the component to inform of any binding changes In the case of Java Connector inbound communication, Activation Spec object lookup and all subsequent interactions with it are done implicitly by the MDB container. The protocol for lookup has not been standardized, though it is reasonable to assume a JMX- or JNDI-based lookup assuming the underlying application server provides facilities to control each step of deployment process, establishment of a link between J2EE components would involve:• Deployment of target component classes (optional for some components, like destinations),• C reation of a special Java object to be used as a target component’s proxy,• Binding of this ob ject with component’s host naming service (JNDI or JMX),• Start of the target component,• Deployment of referencing component classes,• Creation and population of referencing component’s run-time context in its host naming service,• start of the refere ncing component.However, none of modern application servers allow detailed control of the deployment process for all component types beyond what is possible by limited options in their deployment descriptors 4. Therefore our infrastructure will use a simplified approach that relies on features currently available on most application servers:• Ability to deploy messaging destinations and data sources dynamically,• Ability to create and bind into JNDI special objects to access messaging destinations and data sources,• Ability to specify initial binding of EJB Home objects upon EJB component deployment,• Ability to specify a JNDI reference 5 in the referencing component’s run-time context to point to the EJB Home binding of the referenced EJB component. In our infrastructure which is limited to homogeneous application servers, these options are sufficient to control intercomponent links through simple deployment descriptor manipulation. However, in context of heterogeneous application servers, simple JNDI references and thus simple descriptor manipulation are insufficient due to cross-application-serverClassloading issues.2.3.2 Local InteractionsSome interactions between components can occur only between components co-located in the same application server JVM and sometimes only in the same container. In the Web tier, examples of such interactions are servlet-to-servlet request forwarding. In the EJB tier, such interactions are CMP Entity relations and invocations via EJB local interfaces. Such local deployment concerns need not be exposed at the level of a distributed deployment infrastructure other than to ensure collocation. Therefore, the infrastructure treats allcomponents requiring collocation as a single component.2.4 Deployment of J2EE Applications and System Services2.4.1 Deployment of Application ComponentsDeployment and undeployment of standard J2EE components has not yet been standardized (see JSR 88 [10] for standardization effort 6). Therefore, each application server vendor provides proprietary facilities for component deployment and undeployment. And while the J2EE specification does define packaging of standard components which includes format and location of XML-based deployment descriptors within the package, this package is not required to be deployable by an application server without proprietary transformation. Examples of such transformation are• Generation of additional proprietary descriptors that supplement or replace the standard ones,• Code generation of application server-specific classes.In order to proceed with building a dynamic distributed deployment infrastructure capable of deploying in heterogeneous networks, we propose a universal unit of deployment to be a single XML-based deployment descriptor or a set of such,Bundled into an archive. The archive may optionally include Java classes that implement the component and any other resources that the component may need. Alternatively, the deployment descriptors may simply have URL references to codebases. We assume presence of a dynamic deployment/undeployment service on all compliant J2EE servers and a robust application server classloading architecture capable of repeated deployment cycles without undesired classloading-related issues. Most modern application servers (e.g., JBoss [11] and Geronimo [1]) do provide such facilities.2.4.2 Deployment of System Components (Services)While lacking only in the area of defining a clear specification of deployment and undeployment when it comes to application components, the J2EE standard falls much shorter with respect to system services. Not only a standardized deployment facility for system services is not specified, the specification, in fact, places no requirements even on life cycle properties of these services, nor does it address the issue of explicit specification of application component dependencies on the underlying system services. Instead it defines arole of human deploy who is responsible for ensuring that the required services are running based on his/her understanding of dependencies of application components on system services as implied by the nature of components and their deployment descriptors.References[1] Matt Bishop. Computer Security: Art and Science. New York, 2002[2] Matt Bishop. Vulnerabilities Analysis. Proceedings of the Second International Symposium on RecentAdvances in Intrusion Detection.Los Angeles 2006[3] Balasubra maniyan. An Architecture for Intrusion Detection using Autonomous Agents[M]. Department of Computer Sciences, Purdue University, 1998.。
J2EE 外文翻译原文

Design and Implementation of Distribution Network SCADA System Based onJ2EE FrameworkZhao Qiang, Chen DanyanDepartment of Computer Science and Technology, North China Electric Power University (NCEPU), Beijing 102206, Chinazhaoqiang01@ABSTRACT: In this paper, the problems exposed by the thirdgeneration of SCADA (Supervisory Control And Data Acquisition) based on the C/S(Client/Server) mode are analyzed. Then, a new distribution network SCADA based on the four-tier architecture of J2EE platform is built. Because of poor information sharing and interoperability of CORBA (Common Object Request Broker Architecture) as the integration bus among application systems of power enterprises, the seamless integration between SCADA heterogeneous data platform which is based on standard IEC (International Electrical Commission) 61970, and other systems is achieved by means of Web services, and such integration is standard and open. The combination of EJB (Enterprise JavaBean) and Hibernate to implement the business logic and make data be persistent separately also makes the SCADA much more scalable and flexible. Because of its flexibility and extensibility, this new SCADA has great benefit to the automation course of electric power systems.KEYWORDS: J2EE framework; SCADA; standard IEC 61970; Web servicesI. I NTRODUCTIONDistribution network SCADA (Supervisory Control and Data Acquisition) includes not only the models and methods of data acquisition and supervisory control but the models and methods of power network topology. The power system models provided by SCADA are consistent, complete and can be used directly [1].With the expansion and market-oriented operation of the power network, the operating and failure modes begin to increase, so does the data needed to be monitored and analyzed. Especially when devices are running down or under emergency conditions, the analysis and decision-making tasks are so pressing and heavy that the operator often can’t accomplish them perfectly [2]. Therefore, they have to depend on the efficient SCADA. The problems of the third generation of SCADA based on the C/S (Client/Server) mode have gradually appeared, such as being short of flexibility, high install cost, being difficult to share data with other systems, etc. Power network SCADA in China has stepped into the fourth generation and its main characters includes standard IEC (International Electrical Commission) 61970 based, object-oriented and continuing to expand the integration between the SCADA system and other systems [3].J2EE platform, as the mainstream enterprise-class platform for distributed applications, is a component-basedand standards-based platform. Developing SCADA with advanced J2EE technologies can resolve a series of problems existing in the traditional SCADA. J2EE platform is the ideal platform to develop the fourth generation of SCADA system.II.T HE DESIGN OF DISTRIBUTION NETWORK SCADABASED ON J2EE PLATFORMAccording to J2EE architecture, this SCADA is designed Figure 1. SCADA system based on J2EE platform.The new SCADA is based on B/S (Browser/Server) and C/S mixed mode: on the one hand, the browser supplies the users with rich graphic display and user interaction functions, including sequence-of-event report, primary electric wiring diagram, etc., on the other hand, independent Java applications, which run directly on the client operating system(or Java Virtual Machine), can make full use of client resources and computing ability, and the result is that it will offer richer functions for the master side, e.g., analyzing the real-time or historical data, monitoring the devices, etc. The monitor screens of the system are realized by SVG (Scalable Vector Graphics) which is recommended by standard IEC 61970. The system reads static map metadata firstly to create SVG screen, and then reads the real-time data according to pre-defined refresh cycle to refresh the screen partially.JSP (JavaServer Pages) and Java Servlet in the Web layer respond to the requests from the client. Having received2009 International Forum on Information Technology and Application 2009 International Forum on Information Technology and Applicationsthose requests, Servlet calls the EJB (Enterprise JavaBean) components in the business layer via factory delegate class, and then returns the processing results to the client. For the purpose of realizing data sharing between SCADA and other power systems, e.g., GIS (Geographic Information System), some business methods are further wrapped and published as Web services according to standard IEC 61970.The business logic is implemented by EJB component. EJB is the core of the whole design and it enables the system to meet the diverse requirements of power enterprises. The detailed business logic in the early SCADA systems is wrapped by EJB component, that is to say Entity Bean is responsible for building dynamic mapping with the database storing historical data [4]. But in this system, such an old structure is discarded. It uses Hibernate framework instead to build dynamic mapping and then Session Bean realizes the business logic by calling the Hibernate. The business logic encapsulated includes recording sequence-of-even, analyzing failures, etc. Hibernate not only allows the mapping of mapped tables with the domain objects, but also provides data query and recovery mechanisms. Hibernate can replace Entity Bean in the J2EE applications to complete the important task of data persistence [5].The real-time database and the relational database are both adopted. The data from substations are written into the former by the data acquisition module, and then it stores the date needed to record into the latter. The data stored mainly involves telemetry, telesignalling and electrical measurement. III.T HE IMPLEMENTATION OF DISTRIBUTION NETWORKSCADArmation expression and multi-system integrationbased on standard IEC 61970This distribution network SCADA system follows standard IEC 61970 to accomplish the information exchange and interoperation among systems. The integration platform encompasses CIM (Common Information Model), database, import and export tool for CIM/XML (eXtensible Markup Language), CIS (Component Interface Specification) interface implementation and Web services integration bus, as illustrated in Fig. 2.The CIM database mainly used to manage and maintain CIM model data and build bi-directional interface with real-time database. The packages needed to be implemented consist of the core package, topology package, wire package, measuring package and other packages related with CIS service interfaces. The structure of CIM database is built automatically in light of mdl files by conversion tool and the data source comes from SCADA real-time database. The CIM/XML import/export tool will import XML files into CIM database if the whole grid model changes.The CIS interface implementation implements GDA (Generic Data Access) interface and HSDA (High Speed Data Access) interface. The former provides conditional and unconditional queries, writing ability while the latter is used to transfer massive data efficiently [6]. This system offers to read and write data synchronously and asynchronously, subscribe data, etc. Systems like GIS can develop new applications or transfer data flexibly by calling GDA and HSDA implementations on the Web service integration bus. For example, the client can get grid model data by calling GDA methods or get measuring values by calling HSDA methods.The following steps show how to get the whole gird model.1)Get “ResourceID”: Get “ResourceID” for each class by calling method “get_uris”.2)Get record values: Get all record values in the tables by calling method “get_filtered_extent_values”.The system uses the iterator to allow the client to get an arbitrary amount of resources in one time. If the iterator has no resource when the client won’t use it any more, it will be recycled automatically.The traditional integration solutions for heterogeneous system are private and complex, that is to say, different components can’t exchange data directly. In this system, we adopt loosely coupled Web services. It is of great significance in promoting power enterprises to achieve wider application integration.The CIS provided by standard IEC 61970 is identified by IDL (Interface Description Language), which is only for CORBA (Common Object Request Broker Architecture). If want to develop Web services [7], we have to transform IDL CIS into WSDL (Web Service Definition Language) CIS according to conversion rules. Then the CIS Web services server can be built by using the JAX-RPC (Java APIs for XML-Based Remote Procedure Call) server-side model. Here some tools, such as Axis, will be used to mapping WSDL CIS into Java classes.The method using Web services to establish integration bus improves the reusability of the SCADA system and achieves overall information sharing. The third party can visits the SCADA’s run information and grid model in a standard manner.B.Visiting EJB component with design patternsAll the instances created by the factory method pattern usually implement a same interface, where all methods owned by the instances are identified, and these methods always have different implementation in different implementing classes. The present system combines factory method pattern and singleton pattern when creating EJBdelegate factory class. The singleton pattern will provideglobal access point, and the result is that the cost of creatingand destroying Java objects will decrease. The steps for theEJB factory to get EJB remote interface by JNDI (Java Naming and Directory Interface) are as follows.1) Create an EJB factory class: Create an EJB factory class named RemoteFactory, and declare an instance of HashMap for caching EJB remote interface and a private andstatic instance of RemoteFactory which will be returned by asynchronous method. 2) Declaration: Declare the constructor of RemoteFactory to be private. 3) Create a lookup method: Create a lookup method whose return type is EJBObject. In this method, lookup the object of EJBObject in the above HashMap cache pool firstly.If it does exist, then return it. Otherwise, lookup all the homeinterfaces’ parent interface by JNDI in the context, and then a new object of EJBObject which will be put into the existing HashMap later will be created by the interface.After the factory class being created, the client just needsto call the lookup method of it and transfer concreteparameters. Such a universal method can avoid a largenumber of repeat lookups and calls for the method “create”from the client.C. The integration of EJB and HibernateAs the object-relational mapping solution of Java,Hibernate provides a convenient framework for the mapping from object-oriented domain model to the traditional relational database. On the merits of Hibernate, the system will integrate EJB and Hibernate. Hibernate provides the operation to the database and it will be deployed to the Weblogic application server, while Session Bean is responsible for calling Hibernate. The steps of the integration are as follows.1) Deploy Hibernate: Deploy Hibernate to the WeblogicApplication Server. After the deployment, then Weblogic will generate a JNDI for Hibernate. 2) Create a StartUp class: In order to ensure the pre-creating of Hibernate’s SessionFactory, the system needs to create a StartUp class which implements the Weblogic T3StartUpDef interface. This class will begin to run in thebackground when the application server starts. The coremethod is as follows.public String startup(String name, Hashtable args) throwsException {Configuration con = newConfiguration().configure("/hibernate.cfg.xml");SessionFactory sf = con.buildSessionFactory();}3) Call Hibernate: Session Bean can get the Hibernate SessionFactory through the above-mentioned Hibernate JNDI. After getting the instance, Session Bean can operate the database through Hibernate.Context ctx = new InitialContext(); SessionFactory sf = (SessionFactory) ctx.lookup("hibernate/session_factory"); D. Real-time Java TechnologyBecause of Java’s inherent uncertainty such as thread management, garbage collection, class loading, etc., the standard Java applications that run on general JVM (JavaVirtual Machine) can only meet soft real-time demand in a few hundred milliseconds.For a real-time system, predictable execution is critical.In the SCADA systems, when the fault accidents happen, SCADA system should give reaction timely, but the conventional Java thread uses the time slice rotation scheduling mechanism. The mechanism doesn’t provide any priority protections to threads.By using fixed priority scheduling strictly, real-time thread scheduling of RTSJ (Real Time Specification for Java) is perceptible. The class HighResolutionTime and Clock provide high resolution clocks for real-time systems and canbe accurate to nanosecond [8]. The mechanisms that RTSJprovides can meet the needs of the real-time SCADA system.To provide real-time functions, the SCADA systemrequires the underlying operating system to support real-time,for example, Solaris 10 has a real-time scheduler. Also theprogram needs to import the javax.realtime package beforewe use any functions provided by RTSJ implementation. Follow following steps can create and start a real-time thread. 1) Initialize parameters: Initialize related parameters of the constructor of real-time thread. A typical constructor is like this: RealtimeThread(SchedulingParameters scheduling, ReleaseParameters release, MemoryParameters memory, MemoryArea area, ProcessingGroupParameters group, ng.Runnable logic). 2) Instantiating the real-time thread: Instantiating a real-time thread object using above constructor. 3) Start the thread: Call the “start” method of the real-time thread.Generally in the system, the common RealtimeThread will be used in the mission that can tolerate delays caused by the garbage collector. High-priority NoHeapRealtimeThreadis rarely interrupted or occupied, so they will be used in the most demanding tasks which can’t tolerate delays. IV. C ONCLUSION This paper applies the four-layer J2EE architecture to the development of the distribution network SCADA system. After analyzing the architecture of existing SCADA systems, the new system gets a lot of improvements by using many new software technologies that sprang up in recent years. With introduction of the EJB component, SVG, real-time Java technology, standard IEC 61970 and Web services, practices have proved that the new distribution network SCADA system has greater flexibility and scalability than the old system. It will play an important role in thedistribution network automation systems.R EFERENCES[1]Chen Tang, Zhao Zukang, and Chen Xingying, Distribution NetworkSystems and Their Automation Technologies. Beijing: China Electric Power Press, 2004.[2]Du Junhong, Le Quanming, and Tenghuan, “Design of powerdispatching automation systems based on J2EE and CORBA,”Automation of Electric Power Systems. Nanjing, vol. 28, pp. 78-81, March 2004.[3]Ma Zhengwu, “Summarize of SCADA&RTU in the course ofrealizing the enterprise automation,” Program-mable Controller & Factory Automation. Shenzhen, pp. 18-20, August 2005.[4]Yang Jian, Lv You, and Bao Yinghao, “Research and design of powerSCADA system based on B/S three-tier structure,” Science Mosaic.Nanchang, pp. 45-47, September 2007. [5]Gan Shuman, Open Source Framework Technologies and PracticesBased on Eclipse. Beijing: Publishing House of Electronics Industry, 2007.[6]Pan Jianyue, Zhu Chunjie, and Xia Xiang, “Research and applicationof CIM in power utility,” Zhejiang Electric Power. Hangzhou, pp. 9-12, March 2004.[7]Zhang Shenming, Liu Guoding, “Introduction of standard IEC61970,” Automation of Electric Power Systems. Nanjing, vol. 26, pp.1-6, July 2002.[8]Peter C.Dibble, Real-Time Java Platform Programming, Beijing:Machinery Industry Press, 2003.。
J2EE项目的选择与风险外文文献翻译、中英文翻译、外文翻译

浙江工业大学之江学院毕业设计(论文)外文翻译毕业设计(论文)题目:基于J2EE的企业电子投票系统开发与设计外文翻译(一)题目:J2EE体系结构外文翻译(二)题目:J2EE项目的选择与风险分院(系):信息工程分院专业:计算机科学与技术班级: 0402 姓名:徐栋杰学号: 200420100219 指导教师:冯志林毕业设计(论文)外文翻译要求1、毕业设计(论文)外文翻译应有两篇,总字符数不少于20000,其文献来源应由指导教师选定后以纸质(复印或打印件)形式随同毕业设计(论文)任务书一并发给学生。
复印或打印件上应有指导教师和专业教研室主任的签名和日期。
要求每位学生的外文翻译内容不重复。
2、翻译的外文文献应主要选自学术期刊、学术会议的文章、有关著作及其他相关材料,应与毕业论文(设计)主题相关,并列入毕业论文(设计)的参考文献;在每篇中文译文首页“页脚”处注明原文作者及出处,中文译文后应附外文原文(指导教师提供的原文,论文上应有指导教师和教研室主任签名)。
3、中文译文的基本撰写格式为:题目采用三号黑体字居中打印,正文采用宋体小四号字,行间距一般为固定值20磅,标准字符间距。
页边距为左3 cm,右2.5 cm,上下各2.5 cm,页面统一采用A4纸。
4、封面上的“外文翻译题目”指中文译文的题目;两篇外文文献,按“封面、译文一、外文原文(一)、译文二、外文原文(二)、外文翻译评阅表”的顺序统一装订。
赋予一个对该EJB的本地接口的引用,同时无需处理必不可少的JNDI查找。
●业务委托方法。
在这种方法中,业务接口的Web容器实现明确地托付给相应的EJB。
这具有允许高速缓存和允许故障操作在适当地点被重试的优点。
我们无需担心上述任一情况中的java.rmi.RemoteException捕获。
传输错误不会出现。
在这种体系结构中,和通过EJB来暴露一个远程接口的体系结构不同,EJB的使用仅仅是这种体系结构的一个实现选择而已,而不是一个基本特征。
外文文献JSP中英文翻译

THE TECHNIQUE DEVELOPMENT HISTORY OF JSPBy:Kathy Sierra and Bert BatesSource:Servlet&JSPThe Java Server Pages( JSP) is a kind of according to web of the script plait distance technique,similar carries the script language of Java in the server of the Netscape company of server- side JavaScript( SSJS) and the Active Server Pages(ASP)of the Microsoft。
JSP compares the SSJS and ASP to have better can expand sex, and it is no more exclusive than any factory or some one particular server of Web. Though the norm of JSP is to be draw up by the Sun company of, any factory can carry out the JSP on own system.The After Sun release the JSP(the Java Server Pages) formally,the this kind of new Web application development technique very quickly caused the people’s concern。
JSP provided a special development environment for the Web application that establishes the high dynamic state。
Java、J2ee的Spring框架和大数据技术外文文献翻译

文献信息文献标题:Implementing and Analyzing Big Data Techniques with Spring Frame Work in Java & J2EE Based Application(基于Java/J2EE的Spring 框架实现和分析大数据技术)文献作者及出处:Saxena A, Kaushik N, Kaushik N. Implementing and Analyzing Big Data Techniques with Spring Frame Work in Java & J2EE Based Application[C]//Proceedings of the Second International Conference on Information and Communication Technology for Competitive Strategies. ACM, 2016:5.字数统计:英文2814单词,15570字符;中文4912汉字外文文献Implementing and Analyzing Big Data Techniques withSpring Frame Work in Java & J2EE Based ApplicationAbstract –In the time of big data techniques with spring framework on java, web servers or application server as the significant channel in big data should be updated to meet execution and force imperatives. Significant endeavors have been put resources into web server or application server conveyance and web storing procedures, but very few efforts have been paid to improve hardware-favored web type services. Big Data with spring framework in java is a promising business and computing model in web framework. Spring is the most popular open source Java application Framework. It combines all the industry-standard frameworks (for e.g. Struts and Hibernate) and approaches into one bundle. The expense and working costs of data centers have skyrocketed with the increase in computing capacity. Big data is a concept that defines the large volume of both structured and unstructured data – that inundates a business on a day-to-day environment. This research argues the need to provide novel method and tools to bolster programming engineers meaning toenhance vitality productivity and minimize the subsequent from outlining, creating, sending and running programming in Big Data with spring framework.Keywords –Java, J2ee, Hadoop Framework, spring, Big Data.I.INTRODUCTIONBig Data with spring framework based applications and innovation components are composed in java& J2ee. Java has inherent limitations that can keep endeavors from advancing execution and using vast in memory data sets. Organizations endeavor to work around these dormancy, versatility and memory size issues by utilizing separate caching frameworks or analyzing a subset of accessible data. Then again, this influences the quality and convenience of business choices and even lessens revenue.Objective of big data:•By giving a semantic end-to-end connection between clients and data sources.•Enabling clients to quickly define instinctive queries utilizing natural vocabularies and conceptualizations.•Seamlessly coordinating information spread over various distributed data sources, including streaming sources.•Exploiting gigantic parallelism for adaptability a long ways past traditional RDBMSs and along these lines lessening the turnaround time for information requests to minutes as opposed.Objectives for Spring Framework:•The potential favorable circumstances of utilizing Spring's dependency injection.•Dependency injection in XML, utilizing constructor.•Default scope for Spring beans.•How to declare an initialization method in a Spring bean.Java:Java is one of the most robust, mainly used and perfect programming languagefor creating enterprise applications. Over the years, Java development has evolved from applets run on a web browser (chrome, mozila) to large enterprise distributed applications run on multiple servers. Presently, Java has three different flavors, and each addresses certain programming requirements.Spring framework is the most well known application advancement structure for big business Java. A great many designers around the globe use Spring Framework to make high performing, effortlessly testable, reusable code.J2ee:J2ee utilizes a multi-level circulated application model. There are three levels in the commonplace J2EE application model: presentation tier, business logic tier and data tier.Framework:The framework is intended to streamline the full improvement cycle, from building, to sending, to looking after applications. it can be considered as an arrangement of capacities helping the designers in making the applications.II.Spring FrameworkSpring is a lightweight framework. It can be considered as a structure of systems in light of the fact that it gives backing to different structures, for example, Struts, Hibernate, Tapestry, EJB, JSF and so forth. The system, in more extensive sense, can be characterized as a structure where we discover arrangement of the different specialized issues.Features of SpringFramework:•Lightweight -Spring is lightweight as far as size and overhead. The whole spring system can be conveyed in a Jar file that weighs in at a little more than 1 MB.•Aspect-Oriented - Spring supports the features of aspect oriented programming approach that enables cohesive development.•Container -Spring is a compartment in light of the fact that it deals with the life cycle and configuration of application objects.•Framework -Spring accompanies MVC web application framework, based on core Spring functionality. This structure is profoundly configurable by means of methodology interfaces, and obliges various perspective innovations like JSP, Speed, Tiles.Aspect oriented programming:To permit clients to actualize custom perspectives, supplementing their utilization of OOP with AOP. Aspect oriented programming is regularly characterized as a programming strategy that advances partition of worries inside of a software framework. Frameworks are made out of a few parts, each in charge of a particular bit of usefulness.AOP gives you perspectives. Aspects empower modularization of concerns, for example, transaction management that cut across multiple types and objects.AOP is utilized as a part of theSpring Framework:•To give definitivedeclarative enterprise services, particularly as a substitution for EJB explanatory services. The most critical such service is explanatory transaction management.•To permit clients to actualize custom aspects, complementing their utilization of OOP with AOP.Inversion of Control:The IoC (Inversion of Control) pattern utilizes three diverse methodologies as a part of request to accomplish decoupling of control of services from your components:•Interface Injection : Your components expressly fit in with an arrangement of interfaces, with related setup metadata, keeping in mind the end goal to permit the system to oversee them accurately.•Setter Injection : External metadata is utilized to arrange how your segments can be cooperated with.•Constructor Injection: Your components are enrolled with the framework, including the parameters to be utilized when thecomponents are developed, and the structure gives instances of the component with the majority of the predeterminedfacilities applied.Dependency Injection:Dependency Injection (DI) is a design pattern that expels the dependency from the programming code with the goal that it can be anything but difficult to oversee and test the application. Dependency Injection makes our programming code inexactly coupled.III.Big DataBig Data is more and various types of data than is effectively taken care of traditional relational database management systems (RDBMSs). Another helpful point of view is to describe big data as having high volume, high speed, and high assortment.•High volume: the sum or amount of data.•High speed: the rate at which data is created.•High assortment: the distinctive sorts of data.Big Data is a technique that is utilized to portray data that is high volume and speed,requires new technologies and systems to catch, store, and analyze it; and is utilized to upgrade decision making, give understanding and disclosure, and bolster and advance technique. Normally, to analyze data, individuals used to make diverse data sets in view of one or more regular fields so examination turns out to be simple. Big data has numerous sources. For instance, each mouse event on a site can be caught in Web log files and examined keeping in mind the end goal to better comprehend customers' purchasing practices and to impact their shopping by powerfully suggesting products. Social media sources, for example, Facebook and Twitter create enormous measures of remarks and tweets. This data can be caught and broke down to comprehend, for instance, what individuals consider new item presentations. Machines, for example, savvy meters, produce data. These meters persistently stream information about power, water, or gas utilization that can be imparted to clients and consolidated with estimating arrangements to rouse clients to move some of their vitality utilization.Figure 1. Information flow of Big DataThis Figure 1shows different phases of Big Data Uses of Big Data.1.Fraud detection:In many cases, fraud is discovered long after the fact, and soon thereafter the harm has been done and all that is left is to minimize the harm and modify arrangements to keep it from happening once more. Big Data stages that can examine cases and exchanges continuously, recognizing huge scale designs crosswise over numerous exchanges or identifying abnormal conduct from an individual client, can change the fraud detection game.2.IT log analytics:IT arrangements and IT divisions create a colossal amount of logs and follow information. Without a Big Data arrangement, quite a bit of this information must go unexamined.3.Call center analyticsBig Data arrangements can distinguish repeating issues or client and staff conduct designs on the fly not just by comprehending time/quality determination measurements, additionally by catching and preparing call content itself.4.Social media analysisEveryone and their moms are on online networking nowadays, whether they're"preferring" organization pages on Facebook or tweeting protestations about items on Twitter. A Big Data arrangement fabricated to reap and analyze online networking movement, similar to IBM's Cognos Consumer Insights, a point arrangement running on IBM's BigInsights Big Data stage, can comprehend the jabber. Social mediacan give continuous experiences into how the business sector is reacting to items and battles. With those bits of knowledge, organizations can change their valuing, advancement, and battle arrangement on the fly for ideal results.Figure 2. Application area of Big DataCase of Big Data in Real world:•Consumer item organizations and retail associations are checking online networking like Facebook and Twitter to get an uncommon perspective into client conduct, inclinations, and item observation.•Manufacturers are observing moment vibration information from their hardware, which changes somewhat as it wears out, to foresee the ideal time to supplant or keep up.•Manufacturers are likewise observing informal organizations, however with an alternate objective than advertisers: They are utilizing it to identify reseller's exchangebolster issues before a guarantee disappointment turns out to be openly adverse.•The government is making information open at both the national, state, and city level for clients to grow new applications that can produce open great.•Financial Services associations are utilizing information mined from client connections to cut up their clients into finely tuned fragments.•Advertising and showcasing offices are following online networking to comprehend responsiveness to campaigns, advancements, and other promoting mediums.•Insurance organizations are utilizing Big Data investigation to see which home protection applications can be instantly prepared, and which ones need an approving in-individual visit from an operators.•By grasping social media, retail associations are drawing in brand promoters, changing the impression of brand rivals, and not with standing empowering eager clients to offer their items.•Hospitals are investigating medicinal information and patient records to predict those patients that are prone to look for readmission inside of a couple of months of release. The doctor's facility can then mediate with expectations of anticipating another expensive doctor's facility sit tight.•Web-based organizations are creating data items that consolidate information assembled from clients to offer additionally engaging proposals and more fruitful coupon programs.•Sports groups are utilizing information for following ticket deals and even for tracking team strategies.Figure 3. Architecture of Big DataThis figure 3 first extracts the social, archive, service data some part of operational data then transforms with new techniques then load in to server and finally Big Data analytic with latest technique.Figure 4. stages of Big DataThis figure 4 divides the data in to three stages.1.Data Acquisition form:this stage of data cover with streams, internet data, cloud data source, mobile data source, desktop data source and server data source.2.Data refining and processing form:this stage covers refining and processing the data of corporate Hub. Corporate data hub is combination of refining workloads and local workloads.3.Data Shipping form:this stage of architecture extract the data from different sources.IV.HADOOP ARCHITECTURESpring for Apache Hadoop streamlines providing so as to create Apache Hadoopa brought together design model and simple to utilize APIs for utilizing HDFS, MapReduce, Pig, and Hive. It likewise furnishes coordination with other Spring eco –system venture, for example, Spring Incorporation and Spring Cluster empowering you to create answers for enormous information ingest/fare and Hadoop work process organization.Apache Hadoop is a software patternfor preparing a lot of information over conceivably greatly parallel groups of servers. The key segment of Hadoop is the Hadoop Distributed File System,which deals with the data shared over the different servers. It is a direct result of HDFS that such a variety of servers can be overseen in parallel. HDFS is file based and does not require any data model to save and process data. It can store data of any structure, however is not a RDBMS. HDFS can deal with the capacity and access of an Web logs, XML documents type of data and the length of the data can be placed in a file and replicated into HDFS. The Hadoop base regularly runs MapReduce programs in parallel. MapReduce takes substantial datasets, extricates and changes valuable data, conveys the data to the different servers where handling happens, and amasses the outcomes into a smaller,easier-to-examine file. It doesn't perform analytics fundamentally; rather, it gives the system that controls the projects that perform the analytics. As of now, jobs can be run just a in batch, which restrains the utilization of Hadoop/MapReduce for real-time applications. In spite of the fact that Hadoop and MapReduce are talked about and regularly utilized together, they can be utilized independently. That is, Hadoop can be utilized without MapReduce and the other way around.Figure 5 outlines how process is carried out by using Hadoop/MapReduce. This is a basic process that should likewise be possible with SQL based query and a RDBMS, yet gives a decent sample of Hadoop/MapReduce handling. At the left is an information document with records containing Deer, Bear , River, and Car. The goal is to tally the quantity of times every word happens. The initial step is to part the records and then prepared by the clusters of servers, for example, Java and R language on the servers. The target in this case is to assemble the data by a split depending on the words. The MapReduce pattern then consolidations the mix/sort results for information to the reducer program, which thencalculates the number of times every word happens. This yield can then be input to an data warehouse where it might be consolidated with other information for analysis or accessed straight for wardly by different BI instruments .Figure 5. Hadoop ArchitectureV.RESULT AND DISCUSSIONBig data processing with spring framework results in distributed data store: spring framework enables resource and data aggregation on java. Java helps in improvement in execution efficiency by distributing application execution at different levels. Due to reducing costs of devices and networks data from real world is getting collected in data centres. A system that implements big data processing on spring framework is a combination of components like servers for judgment, accumulation and analysis to solve real life problems like traffic management and human resource management. Distributed parallel processing is required to perform statistical analysis of different vehicles at different or same place in one city or a comparison of different cities. In comparing with other distributed batch methods the performance increaseei ght times. Let us use this prototype to match any individual’s location and preference with product inventory of stores and malls and to generate the bills and deliver the product at the doorstep of customer in shortest possible time. The process shown in the figure can be explained in steps:Step 1: Individual’s location and preference is retrieved (Query 1)Step 2: Stores and malls details within a certain distance is retrieved (Query 2) Step 3: Individual’s information and store’s product information is matched (Query 3)Step 4: A bill is generated if they match.The processing load in step 2 and 3 is directly proportional to number of people. Dynamic load balancing by increasing dedicated servers reduces CPU usage and ensures high speed processing. Hence ensuring optimization of improvement in performance, resource efficiency and delivery synchronization.Figure 6. Architecture of big data with Spring FrameworkIn this figure 6 query 1, query 2, query 3 is based on spring framework of java that means all the query based code is stored in the given XML File, individual information is stored in oracle database. Finally coupon issued in the base of big data based query of spring framework of java and J2ee under the supervision Hadoop Architecture of Big Data follow in figure 7 shown below.Figure 7. Spring Framework with big dataVI. CONCLUSION AND FUTURE SCOPEIn this research article, we described the ongoing research to design and implement a big data with spring Framework.This model administers big data to ceaselessly trade asset cuts among machines, granting assets to those occupants requiring or qualified for additional, while having the capacity to figure out where the asset diminishment will be all the more financially compelling, i.e., will contribute in lesser degree to execution debasement.In future we have to implement big data with struts, spring and hibernate integration to reduce cost on infrastructure in java & J2ee base applications.中文译文基于Java/J2EE的Spring框架实现和分析大数据技术摘要—在JAVA Spring框架下的大数据技术时代,作为大数据中重要通道的Web服务器或应用服务器应该进行更新,以满足执行和强制要求。
Java、J2ee的Spring框架和大数据技术外文文献翻译

文献信息文献标题:Implementing and Analyzing Big Data Techniques with Spring Frame Work in Java & J2EE Based Application(基于Java/J2EE的Spring 框架实现和分析大数据技术)文献作者及出处:Saxena A, Kaushik N, Kaushik N. Implementing and Analyzing Big Data Techniques with Spring Frame Work in Java & J2EE Based Application[C]//Proceedings of the Second International Conference on Information and Communication Technology for Competitive Strategies. ACM, 2016:5.字数统计:英文2814单词,15570字符;中文4912汉字外文文献Implementing and Analyzing Big Data Techniques withSpring Frame Work in Java & J2EE Based ApplicationAbstract –In the time of big data techniques with spring framework on java, web servers or application server as the significant channel in big data should be updated to meet execution and force imperatives. Significant endeavors have been put resources into web server or application server conveyance and web storing procedures, but very few efforts have been paid to improve hardware-favored web type services. Big Data with spring framework in java is a promising business and computing model in web framework. Spring is the most popular open source Java application Framework. It combines all the industry-standard frameworks (for e.g. Struts and Hibernate) and approaches into one bundle. The expense and working costs of data centers have skyrocketed with the increase in computing capacity. Big data is a concept that defines the large volume of both structured and unstructured data – that inundates a business on a day-to-day environment. This research argues the need to provide novel method and tools to bolster programming engineers meaning toenhance vitality productivity and minimize the subsequent from outlining, creating, sending and running programming in Big Data with spring framework.Keywords –Java, J2ee, Hadoop Framework, spring, Big Data.I.INTRODUCTIONBig Data with spring framework based applications and innovation components are composed in java& J2ee. Java has inherent limitations that can keep endeavors from advancing execution and using vast in memory data sets. Organizations endeavor to work around these dormancy, versatility and memory size issues by utilizing separate caching frameworks or analyzing a subset of accessible data. Then again, this influences the quality and convenience of business choices and even lessens revenue.Objective of big data:•By giving a semantic end-to-end connection between clients and data sources.•Enabling clients to quickly define instinctive queries utilizing natural vocabularies and conceptualizations.•Seamlessly coordinating information spread over various distributed data sources, including streaming sources.•Exploiting gigantic parallelism for adaptability a long ways past traditional RDBMSs and along these lines lessening the turnaround time for information requests to minutes as opposed.Objectives for Spring Framework:•The potential favorable circumstances of utilizing Spring's dependency injection.•Dependency injection in XML, utilizing constructor.•Default scope for Spring beans.•How to declare an initialization method in a Spring bean.Java:Java is one of the most robust, mainly used and perfect programming languagefor creating enterprise applications. Over the years, Java development has evolved from applets run on a web browser (chrome, mozila) to large enterprise distributed applications run on multiple servers. Presently, Java has three different flavors, and each addresses certain programming requirements.Spring framework is the most well known application advancement structure for big business Java. A great many designers around the globe use Spring Framework to make high performing, effortlessly testable, reusable code.J2ee:J2ee utilizes a multi-level circulated application model. There are three levels in the commonplace J2EE application model: presentation tier, business logic tier and data tier.Framework:The framework is intended to streamline the full improvement cycle, from building, to sending, to looking after applications. it can be considered as an arrangement of capacities helping the designers in making the applications.II.Spring FrameworkSpring is a lightweight framework. It can be considered as a structure of systems in light of the fact that it gives backing to different structures, for example, Struts, Hibernate, Tapestry, EJB, JSF and so forth. The system, in more extensive sense, can be characterized as a structure where we discover arrangement of the different specialized issues.Features of SpringFramework:•Lightweight -Spring is lightweight as far as size and overhead. The whole spring system can be conveyed in a Jar file that weighs in at a little more than 1 MB.•Aspect-Oriented - Spring supports the features of aspect oriented programming approach that enables cohesive development.•Container -Spring is a compartment in light of the fact that it deals with the life cycle and configuration of application objects.•Framework -Spring accompanies MVC web application framework, based on core Spring functionality. This structure is profoundly configurable by means of methodology interfaces, and obliges various perspective innovations like JSP, Speed, Tiles.Aspect oriented programming:To permit clients to actualize custom perspectives, supplementing their utilization of OOP with AOP. Aspect oriented programming is regularly characterized as a programming strategy that advances partition of worries inside of a software framework. Frameworks are made out of a few parts, each in charge of a particular bit of usefulness.AOP gives you perspectives. Aspects empower modularization of concerns, for example, transaction management that cut across multiple types and objects.AOP is utilized as a part of theSpring Framework:•To give definitivedeclarative enterprise services, particularly as a substitution for EJB explanatory services. The most critical such service is explanatory transaction management.•To permit clients to actualize custom aspects, complementing their utilization of OOP with AOP.Inversion of Control:The IoC (Inversion of Control) pattern utilizes three diverse methodologies as a part of request to accomplish decoupling of control of services from your components:•Interface Injection : Your components expressly fit in with an arrangement of interfaces, with related setup metadata, keeping in mind the end goal to permit the system to oversee them accurately.•Setter Injection : External metadata is utilized to arrange how your segments can be cooperated with.•Constructor Injection: Your components are enrolled with the framework, including the parameters to be utilized when thecomponents are developed, and the structure gives instances of the component with the majority of the predeterminedfacilities applied.Dependency Injection:Dependency Injection (DI) is a design pattern that expels the dependency from the programming code with the goal that it can be anything but difficult to oversee and test the application. Dependency Injection makes our programming code inexactly coupled.III.Big DataBig Data is more and various types of data than is effectively taken care of traditional relational database management systems (RDBMSs). Another helpful point of view is to describe big data as having high volume, high speed, and high assortment.•High volume: the sum or amount of data.•High speed: the rate at which data is created.•High assortment: the distinctive sorts of data.Big Data is a technique that is utilized to portray data that is high volume and speed,requires new technologies and systems to catch, store, and analyze it; and is utilized to upgrade decision making, give understanding and disclosure, and bolster and advance technique. Normally, to analyze data, individuals used to make diverse data sets in view of one or more regular fields so examination turns out to be simple. Big data has numerous sources. For instance, each mouse event on a site can be caught in Web log files and examined keeping in mind the end goal to better comprehend customers' purchasing practices and to impact their shopping by powerfully suggesting products. Social media sources, for example, Facebook and Twitter create enormous measures of remarks and tweets. This data can be caught and broke down to comprehend, for instance, what individuals consider new item presentations. Machines, for example, savvy meters, produce data. These meters persistently stream information about power, water, or gas utilization that can be imparted to clients and consolidated with estimating arrangements to rouse clients to move some of their vitality utilization.Figure 1. Information flow of Big DataThis Figure 1shows different phases of Big Data Uses of Big Data.1.Fraud detection:In many cases, fraud is discovered long after the fact, and soon thereafter the harm has been done and all that is left is to minimize the harm and modify arrangements to keep it from happening once more. Big Data stages that can examine cases and exchanges continuously, recognizing huge scale designs crosswise over numerous exchanges or identifying abnormal conduct from an individual client, can change the fraud detection game.2.IT log analytics:IT arrangements and IT divisions create a colossal amount of logs and follow information. Without a Big Data arrangement, quite a bit of this information must go unexamined.3.Call center analyticsBig Data arrangements can distinguish repeating issues or client and staff conduct designs on the fly not just by comprehending time/quality determination measurements, additionally by catching and preparing call content itself.4.Social media analysisEveryone and their moms are on online networking nowadays, whether they're"preferring" organization pages on Facebook or tweeting protestations about items on Twitter. A Big Data arrangement fabricated to reap and analyze online networking movement, similar to IBM's Cognos Consumer Insights, a point arrangement running on IBM's BigInsights Big Data stage, can comprehend the jabber. Social mediacan give continuous experiences into how the business sector is reacting to items and battles. With those bits of knowledge, organizations can change their valuing, advancement, and battle arrangement on the fly for ideal results.Figure 2. Application area of Big DataCase of Big Data in Real world:•Consumer item organizations and retail associations are checking online networking like Facebook and Twitter to get an uncommon perspective into client conduct, inclinations, and item observation.•Manufacturers are observing moment vibration information from their hardware, which changes somewhat as it wears out, to foresee the ideal time to supplant or keep up.•Manufacturers are likewise observing informal organizations, however with an alternate objective than advertisers: They are utilizing it to identify reseller's exchangebolster issues before a guarantee disappointment turns out to be openly adverse.•The government is making information open at both the national, state, and city level for clients to grow new applications that can produce open great.•Financial Services associations are utilizing information mined from client connections to cut up their clients into finely tuned fragments.•Advertising and showcasing offices are following online networking to comprehend responsiveness to campaigns, advancements, and other promoting mediums.•Insurance organizations are utilizing Big Data investigation to see which home protection applications can be instantly prepared, and which ones need an approving in-individual visit from an operators.•By grasping social media, retail associations are drawing in brand promoters, changing the impression of brand rivals, and not with standing empowering eager clients to offer their items.•Hospitals are investigating medicinal information and patient records to predict those patients that are prone to look for readmission inside of a couple of months of release. The doctor's facility can then mediate with expectations of anticipating another expensive doctor's facility sit tight.•Web-based organizations are creating data items that consolidate information assembled from clients to offer additionally engaging proposals and more fruitful coupon programs.•Sports groups are utilizing information for following ticket deals and even for tracking team strategies.Figure 3. Architecture of Big DataThis figure 3 first extracts the social, archive, service data some part of operational data then transforms with new techniques then load in to server and finally Big Data analytic with latest technique.Figure 4. stages of Big DataThis figure 4 divides the data in to three stages.1.Data Acquisition form:this stage of data cover with streams, internet data, cloud data source, mobile data source, desktop data source and server data source.2.Data refining and processing form:this stage covers refining and processing the data of corporate Hub. Corporate data hub is combination of refining workloads and local workloads.3.Data Shipping form:this stage of architecture extract the data from different sources.IV.HADOOP ARCHITECTURESpring for Apache Hadoop streamlines providing so as to create Apache Hadoopa brought together design model and simple to utilize APIs for utilizing HDFS, MapReduce, Pig, and Hive. It likewise furnishes coordination with other Spring eco –system venture, for example, Spring Incorporation and Spring Cluster empowering you to create answers for enormous information ingest/fare and Hadoop work process organization.Apache Hadoop is a software patternfor preparing a lot of information over conceivably greatly parallel groups of servers. The key segment of Hadoop is the Hadoop Distributed File System,which deals with the data shared over the different servers. It is a direct result of HDFS that such a variety of servers can be overseen in parallel. HDFS is file based and does not require any data model to save and process data. It can store data of any structure, however is not a RDBMS. HDFS can deal with the capacity and access of an Web logs, XML documents type of data and the length of the data can be placed in a file and replicated into HDFS. The Hadoop base regularly runs MapReduce programs in parallel. MapReduce takes substantial datasets, extricates and changes valuable data, conveys the data to the different servers where handling happens, and amasses the outcomes into a smaller,easier-to-examine file. It doesn't perform analytics fundamentally; rather, it gives the system that controls the projects that perform the analytics. As of now, jobs can be run just a in batch, which restrains the utilization of Hadoop/MapReduce for real-time applications. In spite of the fact that Hadoop and MapReduce are talked about and regularly utilized together, they can be utilized independently. That is, Hadoop can be utilized without MapReduce and the other way around.Figure 5 outlines how process is carried out by using Hadoop/MapReduce. This is a basic process that should likewise be possible with SQL based query and a RDBMS, yet gives a decent sample of Hadoop/MapReduce handling. At the left is an information document with records containing Deer, Bear , River, and Car. The goal is to tally the quantity of times every word happens. The initial step is to part the records and then prepared by the clusters of servers, for example, Java and R language on the servers. The target in this case is to assemble the data by a split depending on the words. The MapReduce pattern then consolidations the mix/sort results for information to the reducer program, which thencalculates the number of times every word happens. This yield can then be input to an data warehouse where it might be consolidated with other information for analysis or accessed straight for wardly by different BI instruments .Figure 5. Hadoop ArchitectureV.RESULT AND DISCUSSIONBig data processing with spring framework results in distributed data store: spring framework enables resource and data aggregation on java. Java helps in improvement in execution efficiency by distributing application execution at different levels. Due to reducing costs of devices and networks data from real world is getting collected in data centres. A system that implements big data processing on spring framework is a combination of components like servers for judgment, accumulation and analysis to solve real life problems like traffic management and human resource management. Distributed parallel processing is required to perform statistical analysis of different vehicles at different or same place in one city or a comparison of different cities. In comparing with other distributed batch methods the performance increaseei ght times. Let us use this prototype to match any individual’s location and preference with product inventory of stores and malls and to generate the bills and deliver the product at the doorstep of customer in shortest possible time. The process shown in the figure can be explained in steps:Step 1: Individual’s location and preference is retrieved (Query 1)Step 2: Stores and malls details within a certain distance is retrieved (Query 2) Step 3: Individual’s information and store’s product information is matched (Query 3)Step 4: A bill is generated if they match.The processing load in step 2 and 3 is directly proportional to number of people. Dynamic load balancing by increasing dedicated servers reduces CPU usage and ensures high speed processing. Hence ensuring optimization of improvement in performance, resource efficiency and delivery synchronization.Figure 6. Architecture of big data with Spring FrameworkIn this figure 6 query 1, query 2, query 3 is based on spring framework of java that means all the query based code is stored in the given XML File, individual information is stored in oracle database. Finally coupon issued in the base of big data based query of spring framework of java and J2ee under the supervision Hadoop Architecture of Big Data follow in figure 7 shown below.Figure 7. Spring Framework with big dataVI. CONCLUSION AND FUTURE SCOPEIn this research article, we described the ongoing research to design and implement a big data with spring Framework.This model administers big data to ceaselessly trade asset cuts among machines, granting assets to those occupants requiring or qualified for additional, while having the capacity to figure out where the asset diminishment will be all the more financially compelling, i.e., will contribute in lesser degree to execution debasement.In future we have to implement big data with struts, spring and hibernate integration to reduce cost on infrastructure in java & J2ee base applications.中文译文基于Java/J2EE的Spring框架实现和分析大数据技术摘要—在JAVA Spring框架下的大数据技术时代,作为大数据中重要通道的Web服务器或应用服务器应该进行更新,以满足执行和强制要求。
Spring框架-毕业论文外文文献翻译

外文文献翻译SpringFrameworkSpring is an open source framework, and Spring was launched in 2003 as a lightweight Java development framework created by Rod Johnson.In a nutshell, Spring is a hierarchical, JavaSE/EEfull-stack (one-stop) lightweight open source framework.The powerful JavaBeans based configuration management using the Inversion of Control (IoC) principle makes application components faster and easier.1.facilitate decoupling and simplify developmentThrough the IoC container provided by Spring, we can control dependencies between objects by Spring, avoiding excessive program coupling caused by hard coding.With Spring, users do not have to write code for the bottom tier requirements of single instance schema classes, properties, file parsing, and so on, and can focus more on top tier applications.2.AOP programming supportThrough the Spring functionality provided by AOP, it is easy to implement face oriented programming, and many features that are not easily implemented with traditional OOP can be easily handled by AOP.3.declarative transaction supportIn Spring, we can extricate ourselves from tedious and tedious transaction management code and flexibly manage the transaction through declarative manner, so as to improve the efficiency and quality of development.4.convenience program testingAlmost all test work can be done in a non container dependent programming manner, and in Spring, testing is no longer expensive, but something to do.For example, Spring supports Junit4 and can easily test Spring programs by annotations.5.convenient integration of various excellent frameworkSpring does not exclude all kinds of excellent open source framework, on the contrary, Spring can reduce the difficulty of the use of Spring framework, provides a framework for a variety of excellent (such as Struts, Hibernate, Hessian, Quartz) directly support the.6.reduce the difficulty of using Java EE APISpring provides a thin layer of encapsulation for many difficult Java, EE, API (such as JDBC, JavaMail, remote calls, etc.), and the use of these Java EE API is greatly reduced through the simple package of Spring.7.Java source code is a classic example of learningSpring source code, clear structure, exquisite design originality, embodies the master of the Java design pattern and the flexible use of Java technology accomplishment.Spring framework source code is undoubtedly the best practice example of Java technology.If you want to quickly improve your Java skills and application development level in a short time, learning an.The role of MVC - Spring is integration, but not just integration, and the Spring framework can be seen as a framework for enterprise solution levels.The client sends a request, the server controller (implemented by DispatcherServlet) to complete the request forwarding, call a controller for mapping class HandlerMapping, the class is used to map requests to the corresponding processor to process the request.HandlerMapping will request is mapped to the corresponding processor Controller (equivalent to Action) in Spring if you write some processor components, the general implementation of the Controller interface in Controller, you can call Service or DAO to operate data from the DAO ModelAndView used to store the retrieved data, some data can also be stored in response to the view.If you want to return the result to the user, it also provides a view of ViewResolver component in Spring framework, the component labeled Controller returns according to, find the corresponding view, the response response back to the user.Each module (or component) that makes up the Spring framework can exist alone, or can be implemented in conjunction with one or more other modules.Each module has the following functions: 1, the core container: the core container provides the basic functionality of the Spring framework (Spring, Core).The main component of the core container is BeanFactory, which is implemented in factory mode.BeanFactory uses the control inversion (IOC) pattern to separate application configuration and dependency specifications from theactual application code.Spring框架Spring是一个开源框架, Spring是于2003 年兴起的一个轻量级的Java 开发框架, 由Rod Johnson创建。
(完整word版)JAVA外文文献+翻译

Java and the InternetIf Java is, in fact, yet another computer programming language, you may question why it is so important and why it is being promoted as a revolutionary step in computer programming. The answer isn't immediately obvious if you’re comin g from a traditional programming perspective. Although Java is very useful for solving traditional stand—alone programming problems, it is also important because it will solve programming problems on the World Wide Web。
1.Client—side programmingThe Web’s in itial server—browser design provided for interactive content, but the interactivity was completely provided by the server. The server produced static pages for the client browser, which would simply interpret and display them。
Basic HTML contains simple mechanisms for data gathering: text-entry boxes, check boxes, radio boxes, lists and drop—down lists, as well as a button that can only be programmed to reset the data on the form or “submit” the data on the form back to the server。
软件工程外文文献—基于J2EE的Hibernate持久层数据报表系统的设计与实现

外文原文Design and Implementation of the Hibernate Persistence Layer Data Report System Based on J2EEWith the maturity and perfection of the Java technique, the platform J2EE has rapidly developed. The middle layer integrated framework of J2EE architecture is used to satisfy the application requirement of Highavailability,highreliability and scalability, but low cost. Resort to a number of technology within J2EE specification,most companies have developed many application systems. Financial systems often need to deal with hugefinancial data, thus we have made J2EE the framework in developing the financial management system. Financial statements are important documents in the process of financial management, thus standard and real financial statements are of great help for the financial management and also with great convenience for the financial management processes.This article will focus on the statements of the financial system, in order to dynamically statistic and analyze the financial information for managers to use and reference.IL THE CHOICE, ANALYSIS AND APPLICATION OF THE REPORT BUILDER The free software has played a decisive role in ITindustry at present, and the more popular open source freereport builder is Jasperreport. Jasperreport library is aflexible and powerful tool in report generation. It is ableto produce dynamic statements in the form of PDF,HTML or XML, etc, and to support the statements withthe form of CSV, XLS, and so on. It can run on any javaapplication environments, including J2EE and other webapplications. The current version of JasperReport is:"JasperReport 0.6.5". The engine is described by Java, itsupports many kinds of the applicationprocedures fordynamic report generation. Due to a very good crossplatform and compatibility of java, so the applicability isobviously. And the front web page report generatorIReport have been quite well developed, some complexopen-source project such as the chart-table, sub-table,correspond-table, etc. Base on the reasons above, wechose Jasperreport as the report builder.A.Front Design Tool !Report!Report is a front page showing and producing tool,match with JasperReport. It is mainly used in the visualdesign and generation of file in statements form used byJasperReport, as JasperReport itself did not provide a good visual statements design tools, the appearanceoΩReport has just make up for the deficiencies. At the same time, !Report can call the JasperReport library and applyit to any kind of Java application process. !Report is distributed, and described by pure Java which correspondence with GNU General Public LicenseJReport 2.0.5 is the latest version at present, and the functions have been perfectly developed. It has increased our confidence in technology. For example, it can reducethe difficulty in studying XML syntax in JasperReport, and also save a lot of time for skilled technicians butCleIieatamente reports can be built. In this paper, we just express the combination our project with !Report incompleting the layout design and data attributes.B. A Sumtnaiy of JasperreportWe make a further understanding of this advanced report builder through the process of report generation byJasperReport, and the mechanism map of report generation. Fig. 1 is the process mechanisms of report generationby JasperReport tool. (I)Use the !Report visualization tools to design report, then build the xml file. Transfer tostep (3) to directly compile xml file. (2)If the design file( xml file) has existed, then you can import the design filethorough the method net.sf.JasperReport.engine.xml.JRXmlLoader.load(). This method returns the object JasperDesign. The report design can be modified through JasperDesign object, such as add and delete the fields, variables, divisions, etc.(3)After the completion of report design, the report design compilation is available. The report design compilation can be realized thorough the compiIeReportO method ofnet.SfJasperReport. CnginejasperCompileManager class.This method can compile the xml file or object JasperDesign, generate JasperReport object, which can beserialized, and saved as file(usually as .jasper file). The classnet.sf.JasperReport.engine.Jasper CompileManagercan also transfer the report to report design file(xml file). After attain the object JasperReportCinstantiate aJasperReport object from the .jasper file), fill the report with data to generate JasperPrint object. JasperPrintobject can be serialized, and saved as file. With JasperPrint object, we can print, view, convert documentsto other formats that we finally want, such as: PDF, HTML, XML, XLS, CSV, etc. Despite JasperPrintManager category can be exported to PDF, XML documents, but we do not suggest it but the JasperExportManager category to export PDF, HTML, XML documents. It is recommended to use professional exportcategory net.SfJasperReport. engine.export. JRXIsExporter and net.sf.JasperReport. engine. export.JRCsvExporter to export XLS and CSV files. Figure 1. The process mechanisms of report generation by JasperReport tool111.OBJECT-ORIENTED DATA-BASED DESIGNA.The Choice of Data Operation StyleThe contradiction between data model and logic model is the main problem in the traditional developmentprocess of J2EE applications. The database currently in use are basically relational database, but Java isessentially an object-oriented language, whose object uses SQL and JDBC for database operations in storing andreading, which reducing the efficiency of programming and maintainability of the systems. The reality is that, ifwe write the SQL code manually in the enterprise applications, and it will cost a lot of development time toupdate and maintain the persistent layer. It might be nice to save the Java objects into the relational database. Thispaper proposes a J2EE application development strategy based on Hibernate framework, in order to reduce the code coupling and increase the efficiency of system development.B.The Superiority of The Selection with Hibernate TechnologyHibernate is the database O/R mapping technology. It is able to map objects in the line to the relational databasewithout the need for complex persistence layer, and allow developers to prepare the least SQL, in most cases noneof it. Hibernate is an open source object-relational mapping framework. It lightweight packages the JDBC object sothat Java programmers can manipulate the database with object-oriented programming thinking willfully. Comparewith JDBC and SQL, the use of Hibernate to operate the database can greatly improve the realization efficiency.Hibernate framework uses the configuration file to define the mapping relationship between Java objects anddatabase tables, and interpreted the relationship between database tables as the relationship between Java objects such as inheritance, contains, etc. at a deeper level. Describe the complex algorithm with objects throughHQL statement, and the query of data will be simplified at great extent, and the efficiency of development will bespeeded up. In Hibernate, there is a simple and intuitive API, which is used to query the database object. It onlyneeds to interact with these objects in the programmers and tell the Hibernate to save, if creation andmodification them. In this way, a large number of packaging persistent operational business logic no longerneed to write cumbersome JDBC statements, so that the data persistence layer has been greatly simplified.中文翻译基于J2EE的Hibernate持久层数据报表系统的设计与实现随着JaVa技术的成熟和完善,J2EE平台得到了迅速的发展。
j2ee外文翻译文献

j2ee外文翻译文献j2ee外文翻译Infrastructure for Automatic Dynamic DeploymentOf J2EE Application in Distributed EnvironmentsAnatoly Akkerman, Alexander T otok, and Vijay Karamcheti Abstract: in order to achieve such dynamic adaptation, we need an infrastructure for automating J2EE application deployment in such an environment. This need is quite evident to anyone who has ever tried deploying a J2EE application even on a single application server, which is a task that involves a great deal of configuration of both the system services and application components.Key words: j2ee; component; Distributed; Dynamic Deployment;1 IntroductionIn recent years, we have seen a significant growth in component-based enterprise application development. These applications are typically deployed on company Intranets or on the Internet and are characterized by high transaction volume, large numbers of users and wide area access. Traditionally they are deployed in a central location, using server clustering with load balancing (horizontal partitioning) to sustain user load. However, horizontal partitioning has been shown very efficient only in reducing application-related overheads of user-perceived response times, without having much effect on network-induced latencies. Vertical partitioning (e.g., running web tier and business tier in separate VMs) has been used for fault isolation and load balancing but it is sometimes impractical due to significant run-time overheads (even if one would keep the tierson a fast local-area network) related to heavy use of remote invocations. Recent work [14] in the context of J2EE component based applications has shown viability of vertical partitioning in wide-area networks without incurring the aforementioned overheads. The key conclusions from that study can be summarized as follows:Using properly designed applications, vertical distribution across wide-area networks improves user-perceived latencies.Wide-area vertical layering requires replication of application components and maintaining consistency between replicas.Additional replicas may be deployed dynamically to handle new requests.Different replicas may, in fact, be different implementations of the same component based on usage (read-only, read-write).New request paths may reus e components from previously deployed paths.Applying intelligent monitoring [6] and AI planning [2, 12] techniques in conjunction with the conclusions of that study, we see a potential for dynamic adaptation in industry-standard J2EE component-based applications in wide area networks Through deployment of additional application components dynamically based on active monitoring. However, in order to achieve such dynamic adaptation, we need an infrastructure for automating J2EE application deployment in such an environment. This need is quite evident to anyone who has ever tried deploying a J2EE application even on a single application server, which is a task that involves a great deal of configuration of both the system services and application components. For example one has to set up JDBC data sources, messaging destinations and other resource adapters before application components can beconfigured and deployed. In a wide area deployment that spans multiple server nodes, this proves even more complex, since more system services that facilitate inter-node communications need to be configured and started and a variety of configuration data, like IP addresses, port numbers, JNDI names and others have to be consistently maintained in various configuration files on multiple nodes.This distributed deployment infrastructure must be able to: address inter-component connectivity specification and define its effects on component configuration and deployment, address application component dependencies on applicati on server services, their configuration and deployment, provide simple but expressive abstractions to control adaptation through dynamic deployment and undeployment of components,enable reuse of services and components to maintain efficient use of network nodes’ resources,provide these facilities without incurring significant additional design effort on behalf of application programmers.In this paper we propose the infrastructure for automatic dynamic deployment of J2EE applications, which addresses all of the aforementioned issues. The infrastructure defines architecture description languages (ADL) for component and link description and assembly. The Component Description Language is used to describe application components and links. It provides clear separation of application components from system components. A flexible type system is used to define compatibility of component ports and links. A declaration and expression language for configurable component properties allows for specification of inter-component dependencies andpropagation of properties between components. The Component (Replica) Assembly Language allows for assembly of replicas of previously defined components into application paths byConnecting appropriate ports via link replicas and specifying the mapping of these component replicas onto target application server nodes. The Component Configuration Process evaluates an application path’s correctness, identifies the dependencies of application components on system components, and configures component replicas for deployment. An attempt is made to match and reuse any previously deployed replicas in the new path based on their configurations. We implement the infrastructure as a part of the JBoss open source Java application server [11] and test it on severalSample J2EE applications –Java Pets tore [23], Rubies [20] and TPC-W-NYU [32]. The infrastructure implementation utilizes the JBoss’s extendable micro-kernel architecture, based on the JMX [27] specification. Componentized architecture of JBoss allows incremental service deployments depending on the needs of deployed applications. We believe that dynamic reconfiguration of application servers through dynamic deployment and undeployment of system services is essential to building a resource-efficient framework for dynamic distributed deployment of J2EE applications. The rest of the paper is organized as follows. Section 2 provides necessary background for understanding the specifics of the J2EE component technology which are relevant to this study. Section 3 gives a general description of the infrastructure architecture, while section 4 goes deeper in describing particularly important and interesting internal mechanisms of the infrastructure. Section 5describes the implementation of the framework, and related work is discussed in section 6.2 J2EE Background2.1 IntroductionComponent frameworks. A component framework is a middleware system that supports applications consisting of components conforming to certain standards. Application components are “plugged” into the component framework, which establishes their environmental conditions and regulates the interactions between them. This is usually done through containers, component holders, which also provide commonly required support for naming, security, transactions, and persistence. Component frameworks provide an integrated environment for component execution, as a result significantly reduce the effort .it takes to design, implement, deploy, and maintain applications. Current day industry component framework standards are represented by Object Management Group’s CORBA Component Model [18], Sun Microsystems’ Java 2 Platform Enterprise Edition (J2EE) [25] and Microsoft’s .NET [17], wi th J2EE being currently the most popular and wide ly used component framework in the enterprise arena.J2EE. Java 2 Platform Enterprise Edition (J2EE) [25] is a comprehensive standard for developing multi-tier enterprise Java applications. The J2EE specification among other things defines the following:Component programming model,Component contracts with the hosting server,Services that the platform provides to these components,Various human roles,Compatibility test suites and compliance testing procedures.Among the list of services that a compliant application server must provide are messaging, transactions, naming and others that can be used by the application components. Application developed using J2EE adhere to the classical 3-Tier architectures –Presentation Tier, Business Tier, and Enterprise Information System (EIS) Tier (see Fig. 1). J2EE components belonging to each tier are developed adhering to theSpecific J2EE standards.1. Presentation or Web tier.This tier is actually subdivided into client and server sides. The client side hosts a web browser, applets and Java applications that communicate with the server side of presentation tier or the business tier. The server side hosts Java Servlet components [30], Java Server Pages (JSPs) [29] and static web content. These components are responsible for presenting business data to the end users. The data itself is typically acquired from the business tier and sometimes directly from the Enterprise Information System tier. The server side of the presentation tier is typically accessed through HTTP(S) protocol.2. Business or EJB tier.This tier consists of Enterprise Java Beans (EJBs) [24] that model the business logic of the enterprise application. These components provide persistence mechanisms and transactional support. The components in the EJB tier are invoked through remote invocations (RMI), in-JVM invocations or asynchronous message delivery, depending on the type of EJB component. The EJB specification defines several types of components. They differ in invocation style (synchronous vs. asynchronous, local vs. remote) and statefulness: completely stateless (e.g., Message-Driven Bean), stateful non-persistent(e.g., Stateful Session Bean), stateful persistent (e.g., Entity Bean). Synchronously invocable EJB components expose themselves through a special factory proxy object (an EJB Home object, which is specific to a given EJB), which is typically bound in JNDI by the deployer of the EJB. The EJB Home object allows creation or location of an EJBObject, which is a proxy to a particular instance of an EJB 1.3. Enterprise Information System (EIS) or Data tier.This tier refers to the enterprise information systems, like relational databases, ERP systems, messaging systems and the like. Business and presentation tier component communicate with this tier with the help of resource adapters as defined by the Java Connector Architecture [26].The J2EE programming model has been conceived as a distributed programming model where application components would run in J2EE servers and communicate with each other. After the initial introduction and first server implementations, the technology, most notably, the EJB technology has seen some a significant shift away from purely distributed computing model towards local interactions 2. There were very legitimate performance-related reasons behind this shift, however theDistributed features are still available. The J2EE specification has seen several revisions, the latest stable being version 1.3, while version 1.4 is going through last review phases 3. We shall focus our attention on the former, while actually learning from the latter. Compliant commercial J2EE implementations are widely available from BEA Systems [4], IBM [9], Oracle [21] and other vendors. Several open source implementations, including JBoss [11] and JOnAS [19] claimcompatibility as well. ARecent addition to the list is a new Apache project Geronimo[1].2.2 J2EE Component Programming ModelBefore we describe basic J2EE components, let’s first address the issue of defining what a component is a software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties [31].According to this definition the following entities which make up a typical J2EE application would be considered application components (some exceptions given below):EJBs (session, entity, message-driven),Web components (servlets, JSPs),messaging destinations,D ata sources,EJB and Web components are deployed into their corresponding containers provided by the application server vendor. They have well-defined contracts with their containers that govern lifecycle, threading, persistence and other concerns. Both Web and EJB components use JNDI lookups to locate resources or other EJB components they want to communicate with. The JNDI context in which these lookups are performed is maintained separately for each component by its container. Bindings messaging destinations, such as topics and queues, are resources provided by a messaging service implementation. Data sources are resources provided by the application server for data access by business components into the enterprise information services (data) tier, and most commonly are exemplified by JDBCconnection pools managed by the applicationServer. A J2EE programmer explicitly programs only EJBs and Web components. These custom-written components interact with each other and system services both implicitly and explicitly. For example, an EJB developer may choose explicit transaction demarcation (i.e., Bean-Managed Transactions) which means that the developer assumes the burden of writingexplicit programmatic interaction with the p latform’s Transaction Manager Service through well-defined interfaces. Alternatively, the developer may choose Container-Managed transaction demarcation, where transactional behavior of a component is defined through its descriptors and handled completely by the EJB container, thus acting as an implicit dependency of the EJB on the underlying Transaction Manager service.2.3 Links Between Components2.3.1 Remote InteractionsJ2EE defines only three basic inter-component connection types that can cross application server boundaries, in all three cases; communication is accomplished through special Java objects.Remote EJB invocation: synchronous EJB invocations through EJB Home and EJB Object interfaces.Java Connector outbound connection: synchronous message receipt, synchronous and asynchronous message sending, Database query using Connection Factory and Connection interfaces.Java Connector inbound connection: asynchronous message delivery into Message-Driven Beans (MDBs) only, utilizing Activation Spec objects. In the first two cases, an applicationcomponent developer writes the code that performs lookup of these objects in the component’s run-time JNDI context as well as code that issues method invocations or sends and receives messages to and from the remote component. The componen t’s run-time JNDI context is created for each deployment of the component.Bindings in the context are initialized at component deployment time by the deployed (usually by means of component’s deployment descriptors). These bin dings are assumed to be static, since the specification does not provide any contract between the container and the component to inform of any binding changes In the case of Java Connector inbound communication, Activation Spec object lookup and all subsequent interactions with it are done implicitly by the MDB container. The protocol for lookup has not been standardized, though it is reasonable to assume a JMX- or JNDI-based lookup assuming the underlying application server provides facilities to control each step of deployment process, establishment of a link between J2EE components would involve:Deployment of target component classes (optional for some components, like destinations),? C reation of a special Java object to be used as a target component’s proxy,Binding of this ob ject with component’s host naming service (JNDI or JMX),Start of the target component,Deployment of referencing component classes,Creation and population of referencing component’s run-time context in its host naming service,start of the refere ncing component.However, none of modern application servers allow detailedcontrol of the deployment process for all component types beyond what is possible by limited options in their deployment descriptors 4. Therefore our infrastructure will use a simplified approach that relies on features currently available on most application servers:Ability to deploy messaging destinations and data sources dynamically,Ability to create and bind into JNDI special objects to access messaging destinations and data sources,Ability to specify initial binding of EJB Home objects upon EJB component deployment,? Ability to specify a JNDI reference 5 in the referencing component’s run-time context to point to the EJB Home binding of the referenced EJB component. In our infrastructure which is limited to homogeneous application servers, these options are sufficient to control intercomponent links through simple deployment descriptor manipulation. However, in context of heterogeneous application servers, simple JNDI references and thus simple descriptor manipulation are insufficient due to cross-application-serverClassloading issues.2.3.2 Local InteractionsSome interactions between components can occur only between components co-located in the same application server JVM and sometimes only in the same container. In the Web tier, examples of such interactions are servlet-to-servlet request forwarding. In the EJB tier, such interactions are CMP Entity relations and invocations via EJB local interfaces. Such local deployment concerns need not be exposed at the level of a distributed deployment infrastructure other than to ensure collocation. Therefore, the infrastructure treats allcomponents requiring collocation as a single component.2.4 Deployment of J2EE Applications and System Services2.4.1 Deployment of Application ComponentsDeployment and undeployment of standard J2EE components has not yet been standardized (see JSR 88 [10] for standardization effort 6). Therefore, each application server vendor provides proprietary facilities for component deployment and undeployment. And while the J2EE specification does define packaging of standard components which includes format and location of XML-based deployment descriptors within the package, this package is not required to be deployable by an application server without proprietary transformation. Examples of such transformation areGeneration of additional proprietary descriptors that supplement or replace the standard ones,Code generation of application server-specific classes.In order to proceed with building a dynamic distributed deployment infrastructure capable of deploying in heterogeneous networks, we propose a universal unit of deployment to be a single XML-based deployment descriptor or a set of such,Bundled into an archive. The archive may optionally include Java classes that implement the component and any other resources that the component may need. Alternatively, the deployment descriptors may simply have URL references to codebases. We assume presence of a dynamic deployment/undeployment service on all compliant J2EE servers and a robust application server classloading architecture capable of repeated deployment cycles without undesired classloading-related issues. Most modern application servers (e.g., JBoss [11]and Geronimo [1]) do provide such facilities.2.4.2 Deployment of System Components (Services)While lacking only in the area of defining a clear specification of deployment and undeployment when it comes to application components, the J2EE standard falls much shorter with respect to system services. Not only a standardized deployment facility for system services is not specified, the specification, in fact, places no requirements even on life cycle properties of these services, nor does it address the issue of explicit specification of application component dependencies on the underlying system services. Instead it defines arole of human deploy who is responsible for ensuring that the required services are running based on his/her understanding of dependencies of application components on system services as implied by the nature of components and their deployment descriptors.References[1] Matt Bishop. Computer Security: Art and Science. New York, 2002[2] Matt Bishop. Vulnerabilities Analysis. Proceedings of the Second International Symposium on RecentAdvances in Intrusion Detection.Los Angeles 2006[3] Balasubra maniyan. An Architecture for Intrusion Detection using Autonomous Agents[M]. Department of Computer Sciences, Purdue University, 1998.。
MVC框架中英文对照外文翻译文献

中英文对照外文翻译文献(文档含英文原文和中文翻译)译文:Web 2.0下的Spring MVC框架摘要 - 当要建立丰富用户体验的WEB应用时,有大量的WED应用框架可以使用,却很少有该选择哪一种的指导。
WEB 2.0应用允许个体管理他们自己的在线网页,并能与其他在线用户和服务器共享。
这样分享需要访问控制器来实现。
然而,现有的访问控制器解决方案不是令人很满意。
因为在开放且由用户主导的WEB环境下,它满足不了用户的功能需求。
MVC框架是在所有的WEB开发框架中最受欢迎的。
模型-视图-控制器(MVC)是一种软件架构,如今被认为是一种体系结构在软件工程模式中使用。
该模式从用户界面(输入和演示)分离出了“领域逻辑”(基于用户的应用逻辑),它允许独立地开发,测试和维护每个分离的部分。
模型-视图-控制器(MVC)模型创建的应用分离为不同的层次应用,同时在每两者之间建立松散的耦合。
关键字 - Spring MVC, 结构, XStudio, SOA, 控制器I.绪论如何确切地定义一个网站为“WEB 2.0”的呢?关于这有着许多不同见解,使它很难精确地下一个确切的定论。
但当我们将所有的WEB开发框架过一遍之后它就会变得清晰了。
各种基于WEB开发的架构如下:●Ntier架构(Ntier Architecture)在软件工程中,多层架构(常被称为n-tier架构)是一种表示层,应用处理层和数据管理层在逻辑上分开处理的客户端-服务器架构。
例如,一个应用在用户与数据库之间使用中间件提供数据请求服务就用到了多层体系结构。
最为广泛应用的多层体系结构是三层架构。
N-tier 应用架构为开发者提供了用来创建了一个灵活且可复用的模型。
通过打破应用层次,开发者只需修改或添加一个特定的层,而不是要去重写一遍整个应用。
它需要有一个表示层,一个业务层或者数据访问层和一个数据层。
层(layer)和层(tier)之间的概念常常是可以互换的。
J2EE简介-毕业论文外文文献翻译

英文原文:J2EE synopsis:J2EE is a set is completely different in the traditional application development technical frame, contains many modules, mainly may simplify, and the standard application system's development and the deployment, then enhance the probability, the security and use the value again.The J2EE core is a group of technology standard and the guide, contains each kind of module, the service construction and the technical level, has the common standard and the specification, lets each kind rely on the J2EE construction between the different platform, has the good compatibility, between information product each other who the solution behind the enterprise used in the past is unable compatibly, the enterprise interior or exterior exchanged with difficulty predicament.At present, the Java 2 platforms have 3 editions, they are suitable for the bantam and smart card Java 2 platform Micro version (Java 2 Platform Micro Edition, J2ME), are suitable for the tabletop system's Java 2 platform standard edition (Java 2 Platform Standard Edition, J2SE), are suitable for the foundation server application procedure and the service Java 2 platform enterprise version (Java 2 Platform Enterprise Edition, J2EE).J2EE is one kind simplifies the enterprise solution using the Java 2 platforms the development, the deployment and the management related complex question architecture. The J2EE technology's foundation was the core Java platform or the Java 2 platform standard edition, J2EE has not only consolidated in standard edition many merits, for example " compiled one time, everywhere moved " the characteristic, convenience deposit database JDBC API, the CORBA technology as well as can in the Internet application protect data safe mode and so on, meanwhile has provided to EJB (Enterprise JavaBeans), Java Servlets API, JSP (Java Server Pages) as well as the XML technology comprehensive support. Its final goal is becomes one to be able to cause the enterprise exploiters to reduce largely puts in the market hour the architecture.The J2EE architecture provides the intermediate level integration frame to usefor not to need too many expenses satisfiedly and to need the high usability, the redundant reliability as well as the extendibility application demand. Through provided the unification the development platform, J2EE reduced the development multi-layer application expense and the complexity, simultaneously provided to the existing application procedure integrates the powerful support, supported Enterprise JavaBeans completely, had the good guide to support packs and deploys the application, the increase table of contents support, strengthened the safety mechanism, enhanced the performance.The J2EE to building have scalability, flexibility, easy maintenance business system provides a good mechanism:1. Retain existing IT assets: because enterprise must adapt to the new commercial demand, by means of the existing enterprise information system in investment, rather than re-enacted overall scheme is very important. So, a gradual (not radical, completely negative) way above the existing system established the server platform mechanism is not fair that the company needs. Can make full use of the user J2EE, as some of the original investment companies use the Tuxedo, IBM CICS BEA, IBM VisiBroker Inprise Encina,, and Netscape apply Server. This is possible because the J2EE extensive industry supported and some important 'enterprise computing' field supplier to participate. Each supplier to existing customer provides no abandoned existing investment into portable J2EE field upgrade path. Based on the J2EE platform because the product can almost in any operating system and hardware configurations to run on existing operating system and hardware can also be retained use.2. Efficient development: the J2EE allows companies to some generic, very tedious tasks to a server to complete the middleware vendors. So that developers can focus on how to create business logic, correspondingly shorten the development time. Senior middleware vendors provide the following these complex middleware services:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中英文资料外文翻译文献J2EE开发框架Java2企业版为中间件领域思想的统一上发挥了很大的作用。
比如,J2EE为分布式事务管理、目录服务和消息服务提供了一套标准的编程接口。
J2EE的基础——Java2标准版(J2SE) ,成功地为Java提供了一套访问关系数据库的标准。
但是,就像本文中“J2EE缺乏对编程的支持”提到的一样,J2EE这个平台没有能够提供一个令人满意的应用程序编程模型。
Sun公司和一些大的应用服务器供应商都想用开发工具来降低J2EE开发的复杂性,但是这些工具没有其他的JA V A 开发工具优秀,后者有先进的重构工具,和.NET平台相比,J2EE的工具支持显得很逊色。
很多J2EE开发工具自动产生的代码像这些工具本身同样复杂。
在开源社区很多小型J2EE开发者选择了另外一种开发方式——一些可以降低J2EE开发难度的开发框架,较为流行的比如:Struts, Hibernate, 和Spring Framework,他们当今很多J2EE项目种扮演着重要角色。
为什么要采用框架?框架是一由一些类组成,正式这些类为应用程序提供了一个可重用的设计――或者我们经常提到的——应用程序种的一层。
应用程序代码访问类库从而执行任务,而框架是调用应用程序代码,从而管理程序的流程。
这就是经常说道的好莱坞原则:“不要试图联系我们,我们到时候自会通知你。
”开发者写的程序在运行时由框架调用。
设计一个在各种未知背景下都可以使用的框架是很有挑战性的。
框架很适合在复杂的J2EE开发中使用,它可以为开发者提供一个简单易用的模型。
采用一个经过良好设计的开源框架有很多好处:1、在好的框架下,开发者只需要写一些必须的代码;他们不需要直接接触底层的API。
这一点很重要。
2、经过良好设计的框架可以为程序提供清晰的结构并且提高程序的内聚性。
好清晰的结构使得其他人可以更容易加入项目。
3、一个容易使用的框架可以通过一些例子和文档为用户提供最佳实践。
4、采用成功的框架的代码比自己的代码容易测试5、框架只有提供了一些值得使用的功能才会变得流行。
J2EE工程只有真正需要框架的时候才会用它,而自己的框架并不是这样,后者是处于统治地位的。
J2EE本身也提供了一些框架。
比如,Enterprise Java-Beans (EJB) container 或者Servlet engine,二者都运用了“ 采用了好莱坞原则”这个思想,并采用运行时调用来管理对象。
像Struts这些开源web应用框架正式建立在这两个框架的基础上的,本文讨论的重点也是像Struts这样建立在J2EE上的框架,他们为开发者提供了更为简单的模型,和其他的一些好处。
开源框架的出现很多大型的J2EE项目都用自己的内部框架来隐藏平台的复杂性,直到最近人们才逐渐发现一些在很多项目中都存在的共有的难题,这些难题都可以由一个较为统一的解决方案来解决。
而有的框架正好可以充当这些问题的解决方案。
现在有种很明显的趋势:与从前的内部框架相比,这些框架将成为这些难题的更加“标准化”的解决方案。
J2EE平台的日益成熟是这些框架流行的一个原因。
开发者知道有些地方是J2EE的标准API无能为力的,倚他们的经验来看,要弥补这个缺陷是很困难的。
于此同时,一些优秀的开源框架可供使用,它们提供了极为丰富的技术文档,在它们背后还有一个专业的团队做支持,并且一切都是免费的。
Struts在web应用程序产生的那时就有了开源框架。
在1999-2000年,开发者们意识到JSP“Model1”的缺陷,JSP中充斥着请求处理代码和静态数据模板,这意味着你不得不把业务逻辑和复杂的HTML以及其他的标签混到一起。
那个时候还没有标准的框架和J2EE的标准支持,要解决这个问题开发者就得自己实现前端控制器,这样可以把业务逻辑分离到java类中,从而可以减轻对JSP的维护难度。
前端控制器模式经常运用在MVC架构中,MVC模式在OO语言的GUI 开发中经常使用(这个名字总是让人误解,WEB MVC中的视图是从模型中“拉”数据;而在经典MVC中,模型把事件“推向”视图)。
最初的前端控制器实现质量参差不齐。
2001~2002年间,Apache开源组织发布的Struts改变了这个状况,虽然它并非一个完美的框架,但已经足够使其成为该领域事实上的标准。
Struts向人们展示了开源框架的一些优点,比如,新手可以很容易地熟悉它的结构。
2002年末,它成立很多J2EE项目很自然的选择,每一个认真的J2EE 开发者都会对它很熟悉。
Struts几乎用才每一个J2EE项目中,这使得它成为J2EE架构的一个重要组成部分。
甚至很多保守的组织也将其作为软件底层的一部分,并同意接受Apache 的开源协议条款。
Hibernate下一个倒下的多骨诺米牌就是持久化。
J2EE提供了两个持久化的手段:JDBC,它是J2SE中访问关系数据库系统的标准API;另一个是实体Beans ,它是EJB中专门模型化持久化实体的组件。
JDBC以一种错误的编程模型来强制开发者用Java代码来处理关系思想。
而实体beans,先不说Sun和其他主要的J2EE供应商的吹嘘,给人很笨重的感觉:起初这门技术的应用范围很窄,连持久对象间的关系都不能处理。
它使得应用程序难于测试,并且使用了一个很糟糕的查询语言。
直到2003年,即使EJB2.0和2.0做了很多改进,开发者们却很少用它。
早期的尝试持久化问题的解决方案是由关系-对象映射(ORM)来解决的,它可以透明地持久化普通java对象(POJO)。
该思想在注释中有解释。
虽然这种方案并不是专属java的。
但相对与其他的社区而言比如.NET,ORM在java社区更加流行(.NET开发者总是对之抱有怀疑的态度)。
早在1990年,一些商业的ORM工具就出现了,比如TopLink。
但由于其价格昂贵、结构复杂并且与Sun的实体bean标准相左,所以很少人会用。
不管怎样,在持久化POJO方面,这些工具与JDBC和实体Bean相比确实有了很大的进步Java Data Object于2001年在Java Community Progress()的规范中出现。
它为一般的POJO提供了大多数的持久化实现(尽管很多实现都是对关系数据库的)。
但Sun公司以及其他的J2EE技术提供商对该技术表现的很冷淡。
所以JDO也没有能够流行。
Hibernate的出现ORM领域在2002年发生了大变化,原因有两个。
首先,实体Beans在实践中失败,开发者们将其从J2EE中忽视掉了。
它向开发者们说明了一个规范是如何将开发拉入泥潭的。
另外的一个原因是Hibernate的发布,它是第一个功能健全的解决关系对象影射解决方案。
虽然在功能上,它没有TopLink多样。
但在那些最常用的功能上,Hibernate实现的更加健壮,并且有一个非常专业的团队提供全职的开发。
Hibernate并不是全新的,它的ORM思想在这个领域很普遍,但它提供的编程模型比其他任何竞争者都容易使用、都来的直接,它为ORM的使用提供了更加易用、廉价的途径。
于此同时,新一代的商业产品针对关系数据库提供了极其高效的JDO规范的实现。
这样开发者的选择就更丰富了;还有,TopLink也朝着开发者友好的方向前进,它的liscense越来越开放了。
ORM大获全胜。
所的这些因素是的ORM比以往更加规范。
虽然很多项目仍然使用自己的持久层框架,但Hibernate,TopLink以及一些高端的JDO实现,使得使用自己持久层框架的难度相对变大、可维护性降低,自然,也没有什么理由去使用自己的框架了。
虽然这些框架的功能覆盖范围已经很大了,但仍有很多地方不在其中。
比如,一个基于struts,hibernate的项目,业务逻辑很难搞定。
尽管对于这种问题,J2EE 规范提出了解决方案(EJB),但仍旧没有一个合适的编程模型。
SpringJ2EE框架被大规模地运用到项目中,而项目总要负责这些框架以及自己业务代码的连接,使之真正融合到一起。
Spring就是专注于这个问题的,它和Hibernate融合的很好。
本质上讲,Spring是IOC(Inversion of Control)和面向切面编程(AOP)的组合体。
它是一个非侵入式的框架,增强了POJO的功能。
从服务上讲(With a service abstraction),它将程序代码从J2EE环境解耦到普通的java对象(自然,这些代码可以脱离J2EE而在多种环境中运行)。
它还在很多功能上提供了除EJB之外的选择――比如为所有的POJO提供声明式事务。
Spring被广泛运用到很多项目中,从小的web程序到大的企业应用程序。
在这个领域还有其他的产品,比如HiveMind和NamoContainer。
前者和Spring 的思想大致相同,只不过在IOC上有较大差异;后者将很多服务融合在PicoContainer的IOC容器中。
这些产品的实现方式和J2EE的不同在于,它们都很轻便。
在有J2EE API下做测试是非常困难的,这些容器将POJO从J2EE API中脱离出来,从而大大降低了测试的难度。
测试一个普通的java对象,不用象测试J2EE程序那样,得先将应用程序部署到服务器上,要不就得自己动手模拟J2EE 环境。
提供日益流行的测试驱动的开发环境(对于开发者来说这是应得的),是这些轻量容器流行的关键因素。
下一个将会是谁?人们日益对开源框架的重视,使得很多项目的成本大大降低,并且投放使用以及维护速度都增加了。
现在的开源框架都有很高的质量,都提供了很好的文档&一些书籍让开发者做参考。
即便如此,两大因素是的J2EE领域充满了不确定性:开源领域和J2EE“标准”的冲突和AOP的日益重要。
开源和标准之间的冲突表现在两个地方。
一个是表现层,JSF的身后有Sun 公司和其他的一些大公司,而在这个领域有Struts等开源产品与之竞争。
在中间层,EJB 3.0采用J2SE5.0的annotations实现了依赖注入(dependency injection)的功能,但这个功能只是Spring的一个子集在这两个领域,开源产品都更加革新。
JSP借鉴了,而Tapestry则采用了WebObjects的思想。
同样的,不知道EJB3.0为何要尝试着标准化依赖注入,即使这样会使之不可避免地丧失很多功能。
EJB 3.0好像也要进入程序编写领域,而J2EE规范在这方面还没有涉足。
于此同时,AOP的重要性在J2EE社区猛增,在使用上,AOP也越来越受到开发者的青睐。
像Spring、dynaop等被称作“带着双拐的AOP”实现提升了AOP 的知名度。
而纯粹的AOP技术比如AspectJ,在将来的几年也会流行起来。
其次,JBoss通过JCP和EJB3.0保持一致,它极大地推动了AOP技术。