Basic database building
The datasheets providing major port information and draught information of major types of ship and data loading have been accomplished.
- • Table of information about major ports. Information collection and input have been accomplished for major ports in China (mainland, Hongkong, Macau and Taiwan), with 204 entries included.
- • Table of draught information about major types of ship. Draught information collection and input have been accomplished for 12 major types of ships with different tonnage, with 155 entries included.
The wind, wave, current and tide-bound water-level simulation system has been running uninterruptedly on the parallel computer cluster since January 1, 2013. So far, it has been in good condition (except at the time of a safety overhaul).
- • Wind-field data, data for the future 48 hours will be computed on a daily basis (due to time overlapping, computation conducted on the next day will cover part of the data computed on that day); 48 files will be generated every day, with a data volume of 20 MB.
- • Wave data, the same as the wind field data; with a daily data volume of around 10 MB.
- • Current field data, the same as the wind field; with a daily data volume of around 400 MB.
• Tide-bound water level forecast data, the same as the wind field; with a daily data volume of around 7 MB.
Basic geographic data
- • Remote-sensing data, satellite remote-sensing image data of China’s coastal areas, with a data volume of around 20 GB.
- • Vector data, vector data of China’s coastal areas, with a data volume of around 5 MB.
Construction of marine environment information support and forecast system
Technology of software development
Marine environment information support and forecast system for ports and shipping adopts such primary technologies as World Wind (3-D sphere information display and management ) and Java (system development language) to achieve various designed functions [125, 126, 127].
World Wind is an open-source SDK, which reduces the development cost, improves the safety and reliability of the system, cuts down the update and maintenance cost of the system, and is free from the copyright and version constraints. It also provides enhanced functions. Achieving fast loading and display of mass remote-sensing data and desirable 3-D display effect, it compares favorably with Google Earth or systems developed on the basis of Skyline. When operating on the internet, it can also use the high-resolution remotesensing image and vector data service provided by NASA for free, which saves the huge cost of basic data.
Java is an object-oriented programming language for cross-platform applications, and supports Windows, Linux and Android systems. It can be adopted in the development of server, desktop and mobile application programs and adapts quite well to the software and hardware environments.
World Wind technology
World Wind is an open-source geographic software launched by NASA and includes World WindDesktop, World WindJavaSDK and World Wind. Net. It is a 3-D visual virtual globe, which presents the images provided by NASA, USGS and other WMS service providers via a 3-D earth model. Its data source includes global satellite images provided by LandSAT-7, 0.25 to 1 m detailed image data of North America and European cities provided by USGS, precise image data of key cities around the globe provided by SRTM, disastermonitoring data from around the globe provided by MODIS, the worldwide temperature data, administrative boundary, place name and label data provided by GLOBE (covers buildings of European and American countries and countryside of China). Featured with a built-in 3-D engine, Desktop enables user to view the 3-D maps of various places in a fast and convenient way and provides an online database. By integrating WMS (web map service) function, it uses not only data from NASA but also data and intelligent image database management offered by other map service providers on the internet to achieve fast retrieval.
World Wind JavaSDK is another open-source software. Unlike WorldWind Desktop, World Wind JavaSDK serves as component of the user program and can obtain data from NASA; the developer can use such data to the fullest in a more in-depth way by developing functions desired by them. World Wind JavaSDK also provides images of other planets. In terms of design itself, World Wind JavaSDK is of excellent expandability and re-creativeness. When being integrated with the system it belongs to, it can be applied in different fields and for different purposes. The prospect of developing its own GIS platform via World Wind JavaSDK and utilizing data from World Wind to the fullest is promising.
Java is an object-oriented programming language that supports crossplatform application writing. It is an umbrella term of Java programming language launched by Sun Microsystems in May 1995 and Java platform (i.e., JavaSE, JavaEE and JavaMEj [128, 129]. With high universality, efficiency, platform portability and safety, Java technology is widely used in personal PC, data center, game console, scientific supercomputer, mobile phone and Internet and has the largest professional community of developers in the world. In the industrial environment of global cloud computing and mobile internet, the advantages and prospect of Java are self-evident.
Java programming language is very close to C and C+ languages in style. As a pure object-oriented programming language, Java inherits the essence of object-oriented technology of C++ language. Java saves programmers the trouble of memory management by abandoning the pointer (replaced with reference), operator overloading and multiple inheritance (replaced with interface) of the C ++ language which are prone to cause error and adding a garbage collector for collecting memory space taken up by objects that are no longer referenced. In the Java 1.5 version, generic programming, type-safe enumeration, variable-length argument and autoboxing/unboxing and other language features are introduced. Unlike common compiled execution computer language and interpretive execution computer language, Java compiles the source code to binary bytecode before interpreting and executing the bytecode via various virtual machines on different platforms, realizing the cross-platform characteristic of “write once, run anywhere.” However, each execution of the compiled bytecode takes a certain amount of time, which reduces the operation efficiency of Java to a certain degree.
Main features of Java language are as follows:
- • Java language is simple. Java language has a grammar extremely close to that of C and C++ languages, making it easier for most programmers to learn and use Java. In addition, it abandons the obscure and confusing features of C++ that are hardly used, such as operator overloading, multiple inheritance and automatic forced-type conversion. In particular, Java does not use pointer and provides automatic garbage collection, which saves programmers the trouble of memory management.
- • Java language is object-oriented. Java language provides class, interface, and inheritance and other primitives. For the sake of simplicity, it supports only single inheritance between classes, multiple inheritances between interfaces and the implementation mechanism between class and interface (the keyword is implements). Java provides full support to dynamic binding, while C++ language only provides dynamic binding to virtual function. In a word, Java language is a pure object- oriented programming language.
- • Java language is distributed. Java language supports the development of internet applications. There is an internet application programming interface (java.net) in the basic Java application programming interface which provides class libraries applied in network application programming, including URL, URLConnection, Socket and Server- Socket. The RMI (Remote Method Invocation) mechanism of Java is another crucial method for the development of distributed application.
- • Java language is sound. Strongly-typed mechanism, exception handling and automatic waste collection of Java provide guarantee for the soundness of the program. It is wise of Java to abandon pointer. Safety inspection mechanism of Java helps enhance the soundness of it.
- • Java language is safe. Considering that Java is usually used in a network environment, a safety mechanism is provided for Java to prevent malicious code attack. Java language not only has a number of safety features, but also provides a safety protection mechanism against class tools downloaded from the internet (ClassLoader). For example, it allocates different name spaces to avoid replacing local inspection for the same name class and bytecode. It also provides a safety management mechanism (Class SecurityManager), asking Java application to send safety sentry.
- • Java language is architecture-neutral. After Java program (file with the extension of java) is compiled to architecture-neutral files in the form of bytecode (file with the extension of class) on the Java platform, it can run in any system that implements the Java platform. Such a method applies to heterogeneous network environment and software distribution.
- • Java language is portable. Such portability is attributed to its neutral architecture. In addition, Java has strict stipulation for the length of various basic data types. Java system has excellent portability in itself. Java compiler is achieved by Java and the operating environment of Java is realized by ANSI C.
- • Java language is an interpretive one. As aforesaid, Java program is compiled to bytecode format on the Java platform before operating in any system that implements the Java platform. While operating, Java interpreter in the Java platform interprets and implements such bytecodes. The class-loading connection stage required in the implementation will be loaded into the operating environment.
- • Java has high performance. Compared with high-level interpretive scripting languages, Java indeed has high performance. In fact, operation speed of Java is increasingly closer to C++ with the development of JIT (Just-In-Time) compiler technology.
- • Java language is multi-threading based. In Java language, threading is a unique object which can only be created by Thread class or its child or grandchild class. In general, two methods are adopted in the creation of thread. One is wrapping an object implementing Runnable interface as thread by using constructor with the structure of Thread (Runnable). Another one is deriving child class from Thread class and re-writing the run method. The object created with such child class is thread. It is noteworthy that Thread class has implemented Runnable interface. Therefore, any thread has its own run method, which includes codes to be run by the thread. Thread activity is controlled by a set of methods. Java language supports the concurrent implementation of multiple threads and provides synchronization mechanism among multiple threads (the keyword is synchronized).
- • Java language is dynamic. One of the design objectives of Java language is adapting to the dynamically changing environment. Class required by the Java program can be dynamically loaded into the operating environment or loaded via the network, which is beneficial to software update. Furthermore, class in Java includes an operating-time representation, which enables type checking of operating time.